33
Julián Castiblanco P. [email protected] Líder ITPros-DC MCITP Database Administrator SQL Server2008 MCTS Database Developer SQL Server 2008 Microsoft Certified Training

Fundamentos sql server2

Embed Size (px)

Citation preview

Page 1: Fundamentos sql server2

Julián Castiblanco [email protected]

Líder ITPros-DCMCITP Database Administrator SQL Server2008

MCTS Database Developer SQL Server 2008

Microsoft Certified Training

Page 2: Fundamentos sql server2

Primera Sesión:

Modelos Relacionales

Normalización

Ejemplo

Segunda Sesión:

Creación de Bases de datos

Creación de Tablas

Creación de restricciones

Introducción a Transact SQL

Ejemplo

Tercera Sesión:

Creación de Procedimientos

Creación de Vistas

Seguridad de Bases de datos

Page 3: Fundamentos sql server2

» Creación de Bases de Datos

» Creación de Tablas

» Creación de Restricciones

» Introducción a Transact SQL

Page 4: Fundamentos sql server2

Cliente

Servidor de BaseDe Datossqlservr.exe

Archivo de LogTransaccional

*.LDF

Archivo de Datos*.MDF, *. NDF

12 3 4

Page 5: Fundamentos sql server2

C:\Program Files (x86)\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA

Page 6: Fundamentos sql server2

T1 T3

T4

T2

MDF, NDF

LDF

DistribuciónFísica

DistribuciónLógica

Filegroup 1

Filegroup 2

Page 7: Fundamentos sql server2

DatabaseLanguage

92

DDL

CREATE

DROP

ALTER

DML

SELECT ... FROM ... WHERE ...

INSERT INTO ... VALUES ...

UPDATE ... SET ... WHERE ...

DELETE FROM ... WHERE ...

http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt

Page 8: Fundamentos sql server2

» CREATE DATABASE [Facturacion] ON PRIMARY

» ( NAME = N'Facturacion', FILENAME = N'C:\ProgramFiles (x86)\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\Facturacion.mdf' , SIZE = 3072KB , FILEGROWTH = 1024KB )

» LOG ON

» ( NAME = N'Facturacion_log', FILENAME = N'C:\ProgramFiles (x86)\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\Facturacion_log.ldf' , SIZE = 1024KB , FILEGROWTH = 10%)

» GO

Page 9: Fundamentos sql server2

» Creación de Bases de Datos

» Creación de Tablas

» Creación de Restricciones

» Introducción a Transact SQL

Page 10: Fundamentos sql server2

» USE Facturacion

» GO

» CREATE TABLE dbo.Producto

» (

» id smallint NOT NULL,

» name varchar(69) NOT NULL

» ) ON [PRIMARY]

» GO

Page 11: Fundamentos sql server2

» sp_help Producto

» GO

» ALTER TABLE dbo.Producto

» ADD precio numeric(12,2)

» go

Función de sistema para verificar estructura de

Objetos

Page 12: Fundamentos sql server2

Type From To

bigint -9,223,372,036,854,775,808 9,223,372,036,854,775,807

int -2,147,483,648 2,147,483,647

smallint -32,768 32,767

tinyint 0 255

bit 0 1

decimal -10^38 +1 10^38 –1

numeric -10^38 +1 10^38 –1

money -922,337,203,685,477.5808 +922,337,203,685,477.5807

smallmoney -214,748.3648 +214,748.3647

Numerics

Page 13: Fundamentos sql server2

Type From To

datetime (3.33 milliseconds accuracy)

Jan 1, 1753 Dec 31, 9999

smalldatetime (1 minute accuracy) nuevos Date/ Time

Jan 1, 1900 Jun 6, 2079

DATE, TIME, DATETIME2, and DATETIMEOFFSET /SQL SERVER 2008

Type Description

charFixed-length non-Unicode character data with a maximum length of 8,000 characters.

varcharVariable-length non-Unicode data with a maximum of 8,000 characters.

varchar(max)

Variable-length non-Unicode data with a maximum length of 231 characters (SQL Server 2005 only).

textVariable-length non-Unicode data with a maximum length of 2,147,483,647 characters.

Date &

Time

Character

Strings

Page 14: Fundamentos sql server2

Type From To

float -1.79E + 308 1.79E + 308

real -3.40E + 38 3.40E + 38

Approximate

Numerics

Type Description

binaryFixed-length binary data with a maximum length of 8,000 bytes.

varbinary

Variable-length binary data with a maximum length of 8,000 bytes.

varbinary(max)

Variable-length binary data with a maximum length of 231 bytes (SQL Server 2005 only).

imageVariable-length binary data with a maximum length of 2,147,483,647 bytes.

Binary

Page 15: Fundamentos sql server2
Page 16: Fundamentos sql server2

» Creación de Bases de Datos

» Creación de Tablas

» Creación de Restricciones

» Introducción a Transact SQL

Page 17: Fundamentos sql server2

Llave 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.

Page 18: Fundamentos sql server2

Llave Primaria» CREATE TABLE Ciudad (

» CiudadID int NOT NULL PRIMARY KEY,

» CiudadNombre varchar(40) NOT NULL)

» CREATE TABLE Person.EducationType

» (EducationTypeID int NOT NULL,

» EducationTypeNM varchar(40) NOT NULL)

» ALTER TABLE Person.EducationType

» ADD CONSTRAINT PK_EducationType

» PRIMARY KEY (EducationTypeID)

Cuando la tabla ya existe!!!

Page 19: Fundamentos sql server2

Llave Foránea

» CREATE TABLE Person.EmergencyContact (» EmergencyContactID int NOT NULL PRIMARY KEY,» BusinessEntityID int NOT NULL,» ContactFirstNM varchar(50) NOT NULL,» ContactLastNM varchar(50) NOT NULL,» ContactPhoneNBR varchar(25) NOT NULL)

» ALTER TABLE Person.EmergencyContact» ADD CONSTRAINT FK_EmergencyContact_Employee» FOREIGN KEY (BusinessEntityID)» REFERENCES HumanResources.Employee (BusinessEntityID)

Page 20: Fundamentos sql server2

Llave ArtificialSon llaves no propiamente del negocio

utilizadas normalmente para identificar a un registro como único en una tabla.

» CREATE TABLE Factura» (FacturaID int NOT NULL IDENTITY(1,1) PRIMARY KEY,» ClienteID int NOT NULL ,» VendedorID int NOT NULL,» fecha datetime NOT NULL DEFAULT GETDATE())

Page 21: Fundamentos sql server2

El documento no es la llave principal de la tabla, pero debe

ser único

Unique ConstraintAdemás de tener la llave primera,

podríamos requerir que algunas columnas fueran únicas en nuestra tabla.

» CREATE TABLE dbo.Cliente (» ClienteID int NOT NULL IDENTITY(1,1) PRIMARY KEY,» Nombre varchar(90) NOT NULL,» Documento varchar(90) NOT NULL UNIQUE)

Page 22: Fundamentos sql server2

Check Constraint

Valida que los datos a guardarse en una columna, cumplan ciertas reglas.

» CREATE TABLE Empleado(» EmpleadoID int NOT NULL PRIMARY KEY,» Nombre varchar(59) NOT NULL,» ProfesionID int NULL,» Salario numeric(12,2) NOT NULL CHECK (Salario > 1 AND GPA

<=10000000))

Page 23: Fundamentos sql server2

Default ConstraintSi no se ingresa valor al momento de ingresar el registro, el sistema guarda

uno por defecto.

» CREATE TABLE Empleado (» EmpleadoID int NOT NULL PRIMARY KEY,» Nombre varchar(90) NOT NULL,» FechaVinculacion smalldatetime NOT NULL DEFAULT GETDATE(),» Salario numeric(12,2) NOT NULL )

Page 24: Fundamentos sql server2
Page 25: Fundamentos sql server2

» Creación de Bases de Datos

» Creación de Tablas

» Creación de Restricciones

» Introducción a Transact SQL

Page 26: Fundamentos sql server2

SELECTSentencia que permite traer de la base de

datos la información almacenada en las tablas.

SELECT nombre,Documento,SalarioFROM dbo.Empleado

SELECT *FROM dbo.Empleado Devuelve

todas las columnas

Page 27: Fundamentos sql server2

SELECT…FROM…WHERELa clausula WHERE permite condicionar los

resultados recibidos de una consulta.

SELECT nombre,Documento,SalarioFROM dbo.EmpleadoWHERE Documento=80222075

SELECT *FROM dbo.EmpleadoWHERE Genero=‘F’AND Salario>5000000

Page 28: Fundamentos sql server2

Negación de CondiciónPermite negar condiciones en la clausula

WHERE.

SELECT *FROM dbo.EmpleadoWHERE NOTGenero=‘M’AND Salario>5000000

Page 29: Fundamentos sql server2

OPERADORES!< > EXISTS!= >= FREETEXT!> ALL IN< ANY IS<= BETWEEN LIKE<> CONTAINS NOT= ESCAPE SOME

Page 30: Fundamentos sql server2

SubconsultasPermiten que el resultado de una consulta sea

parte de la condición para otra consulta

SELECT DISTINCT s.PurchaseOrderNumberFROM Sales.SalesOrderHeader sWHERE EXISTS ( SELECT SalesOrderIDFROM Sales.SalesOrderDetailWHERE UnitPrice BETWEEN 1000 AND 2000 ANDSalesOrderID = s.SalesOrderID)

Page 31: Fundamentos sql server2

» https://www.microsoftmva.com/

» http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt

» SQL and Relational Theory. C.J. Date. Junio 2009

» SQL Server 2008 Transact-SQL Recipes. Joseph Sack. 2008

Page 32: Fundamentos sql server2
Page 33: Fundamentos sql server2

http://julycastiblanco.blogspot.com/

[email protected]