1. Introducción a SQL Julián Castiblanco P. Julian_castiblancop@hotmail.com Líder ITPros-DC MCITP DatabaseAdministrator SQL Server2008 MCTS DatabaseDeveloper SQL Server 2008 Microsoft Certified Training
2. Agenda del Ciclo Primera Sesión:Modelos RelacionalesNormalizaciónEjemplo Segunda Sesión:Creación de Bases de datosCreación de TablasCreación de restriccionesIntroducción a Transact SQLEjemplo Tercera Sesión:Creación de ProcedimientosCreación de VistasSeguridad de Bases de datos
3. Agenda de la Sesión Creación de Bases de Datos Creación de Tablas Creación de Restricciones Introducción a Transact SQL
4. Como se guarda la información en SQL Server 1 3 4 2 Cliente Archivo de Log Transaccional *.LDF Archivo de Datos *.MDF, *. NDF Servidor de Base De Datos sqlservr.exe
5. Como se guarda la información en SQL Server C:rogram Files (x86)icrosoft SQL ServerSSQL10_50.SQLEXPRESSSSQLATA
6. Bases de datos Distribución Física Distribución Lógica MDF, NDF Filegroup 1 T1 T3 T4 Filegroup 2 T2 LDF
8. Creación de la base de datos CREATE DATABASE [Facturacion] ON PRIMARY ( NAME = N'Facturacion', FILENAME = N'C:rogram Files (x86)icrosoft SQL ServerSSQL10_50.SQLEXPRESSSSQLATAacturacion.mdf' , SIZE = 3072KB , FILEGROWTH = 1024KB ) LOG ON ( NAME = N'Facturacion_log', FILENAME = N'C:rogram Files (x86)icrosoft SQL ServerSSQL10_50.SQLEXPRESSSSQLATAacturacion_log.ldf' , SIZE = 1024KB , FILEGROWTH = 10%) GO
9. Agenda de la Sesión Creación de Bases de Datos Creación de Tablas Creación de Restricciones Introducción a Transact SQL
10. Creación de Tablas USE Facturacion GO CREATE TABLEdbo.Producto ( id smallint NOT NULL, name varchar(69) NOT NULL ) ON [PRIMARY] GO
11. Creación de Tablas sp_helpProducto GO ALTER TABLE dbo.Producto ADD precio numeric(12,2) go Función de sistema para verificar estructura de Objetos
16. Agenda de la Sesión Creación de Bases de Datos Creación de Tablas Creación de Restricciones Introducción a Transact SQL
17. Restricciones Llave Primaria Tipo especial de restricción que identifica a una o varias columnas que permiten identificar como único a un registro en una tabla. Llave Foránea Establece y forza la relación entre tablas. Ayudan a mantener la integridad referencial.
18. Restricciones Llave Primaria CREATE TABLE Ciudad ( CiudadIDint NOT NULL PRIMARY KEY, CiudadNombrevarchar(40) NOT NULL) CREATE TABLE Person.EducationType (EducationTypeIDint NOT NULL, EducationTypeNMvarchar(40) NOT NULL) ALTER TABLEPerson.EducationType ADD CONSTRAINT PK_EducationType PRIMARY KEY (EducationTypeID) Cuando la tabla ya existe!!!
19. Restricciones Llave Foránea CREATE TABLE Person.EmergencyContact ( EmergencyContactIDint NOT NULL PRIMARY KEY, BusinessEntityIDint NOT NULL, ContactFirstNMvarchar(50) NOT NULL, ContactLastNMvarchar(50) NOT NULL, ContactPhoneNBRvarchar(25) NOT NULL) ALTER TABLE Person.EmergencyContact ADD CONSTRAINTFK_EmergencyContact_Employee FOREIGN KEY (BusinessEntityID) REFERENCESHumanResources.Employee (BusinessEntityID)
20. Restricciones Llave Artificial Son llaves no propiamente del negocio utilizadas normalmente para identificar a un registro como único en una tabla. CREATE TABLEFactura (FacturaIDint NOT NULL IDENTITY(1,1)PRIMARY KEY, ClienteIDint NOT NULL , VendedorIDintNOT NULL, fechadatetime NOT NULL DEFAULT GETDATE())
21. El documento no es la llave principal de la tabla, pero debe ser único Restricciones UniqueConstraint Además de tener la llave primera, podríamos requerir que algunas columnas fueran únicas en nuestra tabla. CREATE TABLE dbo.Cliente ( ClienteIDint NOT NULL IDENTITY(1,1) PRIMARY KEY, Nombre varchar(90) NOT NULL, Documentovarchar(90) NOT NULL UNIQUE)
22. Restricciones CheckConstraint Valida que los datos a guardarse en una columna, cumplan ciertas reglas. CREATE TABLE Empleado( EmpleadoIDint NOT NULL PRIMARY KEY, Nombre varchar(59) NOT NULL, ProfesionIDint NULL, Salario numeric(12,2) NOT NULL CHECK(Salario> 1 AND GPA <=10000000))
23. Restricciones Default Constraint Si no se ingresa valor al momento de ingresar el registro, el sistema guarda uno por defecto. CREATE TABLE Empleado ( EmpleadoIDint NOT NULL PRIMARY KEY, Nombre varchar(90) NOT NULL, FechaVinculacionsmalldatetimeNOT NULL DEFAULT GETDATE(), Salario numeric(12,2) NOT NULL )
25. Agenda de la Sesión Creación de Bases de Datos Creación de Tablas Creación de Restricciones Introducción a Transact SQL
26. SQL SELECT Sentencia que permite traer de la base de datos la información almacenada en las tablas. Devuelve todas las columnas SELECT nombre, Documento, Salario FROM dbo.Empleado SELECT * FROM dbo.Empleado
27. SQL SELECT…FROM…WHERE La clausula WHERE permite condicionar los resultados recibidos de una consulta. SELECT nombre, Documento, Salario FROM dbo.Empleado WHERE Documento=80222075 SELECT * FROM dbo.Empleado WHERE Genero=‘F’ AND Salario>5000000
28. SQL Negación de Condición Permite negar condiciones en la clausula WHERE. SELECT * FROM dbo.Empleado WHERENOTGenero=‘M’ AND Salario>5000000
30. SQL Subconsultas Permiten que el resultado de una consulta sea parte de la condición para otra consulta SELECT DISTINCT s.PurchaseOrderNumber FROM Sales.SalesOrderHeader s WHERE EXISTS ( SELECT SalesOrderID FROM Sales.SalesOrderDetail WHERE UnitPrice BETWEEN 1000 AND 2000 AND SalesOrderID = s.SalesOrderID)