Introducción a SQLJulián Castiblanco P.Julian_castiblancop@hotmail.comLíder ITPros-DCMCITP DatabaseAdministrator SQL Server2008MCTS DatabaseDeveloper SQL Server 2008Microsoft Certified Training
Agenda del CicloPrimera Sesión:Modelos RelacionalesNormalizaciónEjemploSegunda Sesión:Creación de Bases de datosCreación de TablasCreación de restriccionesIntroducción a Transact SQLEjemploTercera Sesión:Creación de ProcedimientosCreación de VistasSeguridad de Bases de datos
Agenda de la SesiónCreación de Bases de DatosCreación de TablasCreación de RestriccionesIntroducción a Transact SQL
Como se guarda la información en SQL Server1342ClienteArchivo de LogTransaccional*.LDFArchivo de Datos*.MDF, *. NDFServidor de BaseDe Datossqlservr.exe
Como se guarda la información en SQL ServerC:\Program Files (x86)\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA
Bases de datosDistribuciónFísicaDistribuciónLógicaMDF, NDFFilegroup 1T1T3T4Filegroup 2T2LDF
http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt
Creación de la base de datosCREATE DATABASE [Facturacion] ON  PRIMARY( NAME = N'Facturacion', FILENAME = N'C:\Program Files (x86)\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\Facturacion.mdf' , SIZE = 3072KB , FILEGROWTH = 1024KB )LOG ON ( NAME = N'Facturacion_log', FILENAME = N'C:\Program Files (x86)\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\Facturacion_log.ldf' , SIZE = 1024KB , FILEGROWTH = 10%)GO
Agenda de la SesiónCreación de Bases de DatosCreación de TablasCreación de RestriccionesIntroducción a Transact SQL
Creación de TablasUSE FacturacionGOCREATE TABLEdbo.Producto	(	id smallint NOT NULL,	name varchar(69) NOT NULL	)  ON [PRIMARY]GO
Creación de Tablassp_helpProductoGOALTER TABLE dbo.ProductoADD  precio numeric(12,2)goFunción de sistema para verificar estructura de Objetos
Tipos de DatosNumerics
Tipos de DatosCharacterStringsDate &Time
Tipos de DatosApproximateNumericsBinary
Demostración
Agenda de la SesiónCreación de Bases de DatosCreación de TablasCreación de RestriccionesIntroducción a Transact SQL
RestriccionesLlave PrimariaTipo especial de restricción que identifica a una o varias columnas que permiten identificar como único a un registro en una tabla.Llave ForáneaEstablece y forza la relación entre tablas. Ayudan a mantener la integridad referencial.
RestriccionesLlave PrimariaCREATE TABLE Ciudad (CiudadIDint NOT NULL PRIMARY KEY,CiudadNombrevarchar(40) NOT NULL)CREATE TABLE Person.EducationType(EducationTypeIDint NOT NULL,EducationTypeNMvarchar(40) NOT NULL)ALTER TABLEPerson.EducationTypeADD CONSTRAINT PK_EducationTypePRIMARY KEY (EducationTypeID)Cuando la tabla ya existe!!!
RestriccionesLlave ForáneaCREATE 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.EmergencyContactADD CONSTRAINTFK_EmergencyContact_EmployeeFOREIGN KEY (BusinessEntityID)REFERENCESHumanResources.Employee (BusinessEntityID)
RestriccionesLlave ArtificialSon 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())
El documento no es la llave principal de la tabla, pero debe ser únicoRestriccionesUniqueConstraintAdemá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)
RestriccionesCheckConstraintValida 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))
RestriccionesDefault ConstraintSi 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 )
Demostración
Agenda de la SesiónCreación de Bases de DatosCreación de TablasCreación de RestriccionesIntroducción a Transact SQL
SQLSELECTSentencia que permite traer de la base de datos la información almacenada en las tablas.Devuelve todas las columnasSELECT nombre,Documento,SalarioFROM dbo.EmpleadoSELECT *FROM dbo.Empleado
SQLSELECT…FROM…WHERELa clausula WHERE permite condicionar los resultados recibidos de una consulta.SELECT nombre,Documento,SalarioFROM dbo.EmpleadoWHERE Documento=80222075SELECT *FROM dbo.EmpleadoWHERE Genero=‘F’AND Salario>5000000
SQLNegación de CondiciónPermite negar condiciones en la clausula WHERE.SELECT *FROM dbo.EmpleadoWHERENOTGenero=‘M’AND Salario>5000000
SQL
SQLSubconsultasPermiten que el resultado de una consulta sea parte de la condición para otra consultaSELECT DISTINCT s.PurchaseOrderNumberFROM Sales.SalesOrderHeader sWHERE EXISTS ( SELECT SalesOrderIDFROM Sales.SalesOrderDetailWHERE UnitPrice BETWEEN 1000 AND 2000 ANDSalesOrderID = s.SalesOrderID)
Fuenteshttps://www.microsoftmva.com/http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txtSQL and RelationalTheory. C.J. Date. Junio 2009SQL Server 2008 Transact-SQL Recipes. Joseph Sack.  2008
Demostración
Gracias!!!http://julycastiblanco.blogspot.com/Julian_castiblancop@hotmail.com

Fundamentos sql server2

  • 1.
    Introducción a SQLJuliánCastiblanco P.Julian_castiblancop@hotmail.comLíder ITPros-DCMCITP DatabaseAdministrator SQL Server2008MCTS DatabaseDeveloper SQL Server 2008Microsoft Certified Training
  • 2.
    Agenda del CicloPrimeraSesión:Modelos RelacionalesNormalizaciónEjemploSegunda Sesión:Creación de Bases de datosCreación de TablasCreación de restriccionesIntroducción a Transact SQLEjemploTercera Sesión:Creación de ProcedimientosCreación de VistasSeguridad de Bases de datos
  • 3.
    Agenda de laSesiónCreación de Bases de DatosCreación de TablasCreación de RestriccionesIntroducción a Transact SQL
  • 4.
    Como se guardala información en SQL Server1342ClienteArchivo de LogTransaccional*.LDFArchivo de Datos*.MDF, *. NDFServidor de BaseDe Datossqlservr.exe
  • 5.
    Como se guardala información en SQL ServerC:\Program Files (x86)\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA
  • 6.
  • 7.
  • 8.
    Creación de labase de datosCREATE DATABASE [Facturacion] ON PRIMARY( NAME = N'Facturacion', FILENAME = N'C:\Program Files (x86)\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\Facturacion.mdf' , SIZE = 3072KB , FILEGROWTH = 1024KB )LOG ON ( NAME = N'Facturacion_log', FILENAME = N'C:\Program Files (x86)\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\Facturacion_log.ldf' , SIZE = 1024KB , FILEGROWTH = 10%)GO
  • 9.
    Agenda de laSesiónCreación de Bases de DatosCreación de TablasCreación de RestriccionesIntroducción a Transact SQL
  • 10.
    Creación de TablasUSEFacturacionGOCREATE TABLEdbo.Producto ( id smallint NOT NULL, name varchar(69) NOT NULL ) ON [PRIMARY]GO
  • 11.
    Creación de Tablassp_helpProductoGOALTERTABLE dbo.ProductoADD precio numeric(12,2)goFunción de sistema para verificar estructura de Objetos
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
    Agenda de laSesiónCreación de Bases de DatosCreación de TablasCreación de RestriccionesIntroducción a Transact SQL
  • 17.
    RestriccionesLlave PrimariaTipo especialde restricción que identifica a una o varias columnas que permiten identificar como único a un registro en una tabla.Llave ForáneaEstablece y forza la relación entre tablas. Ayudan a mantener la integridad referencial.
  • 18.
    RestriccionesLlave PrimariaCREATE TABLECiudad (CiudadIDint NOT NULL PRIMARY KEY,CiudadNombrevarchar(40) NOT NULL)CREATE TABLE Person.EducationType(EducationTypeIDint NOT NULL,EducationTypeNMvarchar(40) NOT NULL)ALTER TABLEPerson.EducationTypeADD CONSTRAINT PK_EducationTypePRIMARY KEY (EducationTypeID)Cuando la tabla ya existe!!!
  • 19.
    RestriccionesLlave ForáneaCREATE TABLEPerson.EmergencyContact (EmergencyContactIDint NOT NULL PRIMARY KEY,BusinessEntityIDint NOT NULL,ContactFirstNMvarchar(50) NOT NULL,ContactLastNMvarchar(50) NOT NULL,ContactPhoneNBRvarchar(25) NOT NULL)ALTER TABLE Person.EmergencyContactADD CONSTRAINTFK_EmergencyContact_EmployeeFOREIGN KEY (BusinessEntityID)REFERENCESHumanResources.Employee (BusinessEntityID)
  • 20.
    RestriccionesLlave ArtificialSon llavesno 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 noes la llave principal de la tabla, pero debe ser únicoRestriccionesUniqueConstraintAdemá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.
    RestriccionesCheckConstraintValida que losdatos 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.
    RestriccionesDefault ConstraintSi nose 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 )
  • 24.
  • 25.
    Agenda de laSesiónCreación de Bases de DatosCreación de TablasCreación de RestriccionesIntroducción a Transact SQL
  • 26.
    SQLSELECTSentencia que permitetraer de la base de datos la información almacenada en las tablas.Devuelve todas las columnasSELECT nombre,Documento,SalarioFROM dbo.EmpleadoSELECT *FROM dbo.Empleado
  • 27.
    SQLSELECT…FROM…WHERELa clausula WHEREpermite condicionar los resultados recibidos de una consulta.SELECT nombre,Documento,SalarioFROM dbo.EmpleadoWHERE Documento=80222075SELECT *FROM dbo.EmpleadoWHERE Genero=‘F’AND Salario>5000000
  • 28.
    SQLNegación de CondiciónPermitenegar condiciones en la clausula WHERE.SELECT *FROM dbo.EmpleadoWHERENOTGenero=‘M’AND Salario>5000000
  • 29.
  • 30.
    SQLSubconsultasPermiten que elresultado de una consulta sea parte de la condición para otra consultaSELECT DISTINCT s.PurchaseOrderNumberFROM Sales.SalesOrderHeader sWHERE EXISTS ( SELECT SalesOrderIDFROM Sales.SalesOrderDetailWHERE UnitPrice BETWEEN 1000 AND 2000 ANDSalesOrderID = s.SalesOrderID)
  • 31.
  • 32.
  • 33.