MS SQL Server 2008 Nivel 1
Instructor:Lic. Diego KrauthamerSecretario AGSI
Autor de Contenidos:Lic. Mariano Quesada
2012
Agenda• Tablas y Tipos de Datos.• Integridad de Datos.• Conceptos Básicos de Consultas en SQL.o DDL: Create – Alter – Dropo DML: Select –Insert – Update - Delete
• Variableso Declaración.o Asignación de valores.o Utilización.
• Tipo y uso de Operadores
• Control de Flujo.o Begin / Endo If / Elseo Returno Whileo Case
• Vistaso Tipo de Vistas.o Creación y uso de las Vistas.
Tipos de Datos y Tablas• Tipos de Datos - Sql Server:o Enteros: tinyint (1b // 0::255), smallint (2b // -32.768::32.767)
int (4b // -2.147.483.648:: 2.147.483.647), bigint (8b)o Decimales: decimal (2b::17b), float y real (8b::15b)o Moneda: smallmoney (4b), money (8b)o Fecha: smalldatetime (4b), datetime (8b) o Caracteres: char, varchar, varchar(max)y text (0b::2GB)o Unicode: nchar, nvarchar, nvarchar(max), ntexto Binarios: binary, varbinary y varbinary(max) (0b::2GB)o Varios: Image (0b::2GB), uniqueidentifier, bit, xml, etc
•De Aliaso CREATE TYPE
Tipos de Datos y Tablas• Creación (ejemplo)
CREATE TABLE Ventas.Pedidos(Num_Pedido int identity NOT NULL,Fecha datetime NOT NULL,Cod_Cliente int NOT NULL,Notas nvarchar(200) NULL)
• Modificación o ALTER TABLE
• Borrado o TRUNCATE TABLE o DROP TABLE
Tipos de Datos y Tablas
Organización de los datos en un registro
Cabecera Datos Fijos NB VB Datos Variable
Tipos de Datos y Tablas
• Tablas con Particioneso Definición
o Ventajas
o Funciones de Partición
o Esquema de Particiones
o Operaciones
Tipos de Datos y Tablas• Funciones de Particióno Sintaxis
CREATE PARTITION FUNCTION partition_function_name ( input_parameter_type )
AS RANGE [ LEFT | RIGHT ] FOR VALUES ( [ boundary_value [ ,...n ] ] )
o EjemploCREATE PARTITION FUNCTION pf_FechaOrden (datetime)AS RANGE RIGHTFOR VALUES ('01/01/2003', '01/01/2004', '01/01/2005')
Tipos de Datos y Tablas• Esquemas de Particiones
o SintaxisCREATE PARTITION SCHEME ps_FechaOrden
AS PARTITION pf_FechaOrdenTO (fg1, fg2, fg3, fg4, fg5)
o EjemploCREATE PARTITION SCHEME ps_FechaOrden
AS PARTITION pf_FechaOrdenALL TO ([PRIMARY])
Tipos de Datos y Tablas• Operacioneso SWITCH
ALTER TABLE dbo.PartitionedTransactionsSWITCH PARTITION 1TO dbo.TransactionArchive
o MERGEALTER PARTITION FUNCTION pf_FechaOrden()MERGE RANGE ('01/01/2003')
o SPLITALTER PARTITION FUNCTION pf_FechaOrden()SPLIT RANGE ('01/01/2006')
Integridad de Datos• Tiposo Dominio (columna)o Entidad (tabla)o Referencial
• Opcioneso Tipo de Datoo Reglas y Defaultso Restricciones (Constraints)o Desencadenadores (Triggers)
Integridad de Datos• Restricciones (Constraints)
o PRIMARY KEY
o DEFAULT
o CHECK
o UNIQUE
o FOREIGN KEY
Integridad de Datos• PRIMARY KEYo Identifica en forma única a cada registro
o Una por tabla
o Puede aplicarse sobre una o varias columnas
o Las columnas no pueden aceptar nulos
o Genera índice único
o Esta recomendado aplicarlo sobre columnas Identity
Integridad de Datos• DEFAULTo Valor predeterminado para una columna
o Se aplica solo en la instrucción INSERT
o Cada columna puede tener su propio DEFAULT
o No se puede aplicar sobre columnas Identity
o Aceptar funciones y valores de sistema
Integridad de Datos• CHECKo Limitan los valores que puede aceptar una columna
o Se verifican en INSERT y UPDATE
o Varias por columna
o No sobre columnas text, ntext o image
o Los datos se verifican durante la creación. Cláusula NO CHECK permite no verificar
Integridad de Datos• UNIQUEo Datos únicos que no son clave principal
o Varias por tabla
o Admite nulos. Un solo nulo por columna
o Permite referenciar FOREIGN KEY
o Crea un índice único
Integridad de Datos• FOREIGN KEYo Relaciona datos entre dos tablas
o La relación puede estar dada por una o varias columnas
o No crea índices automáticamente
o Puede referirse a una columna de la misma tabla
o Puede contener nulos.
Integridad de Datos• Información sobre Restriccioneso Procedimientos Almacenados
Sp_HelpConstraint Sp_Help
oVista de Catálogo sys.check_constraints sys.foreign_keys sys.default_constraints
Integridad de Datos• Desencadenadores (Triggers)o Una sola transacción
o Cascada
o Check más complejos
o Evaluación del estado de una tabla
o Permite varios desencadenadores para cada INSERT DELETE UPDATE
Integridad de Datos• Desencadenadores (Triggers)o Puede acceder datos de otras bases de datos
o Puede definirse para más de una acción
o INSTEAD OF Delete/Update no sobre tablas con FK con cascada
o Pueden especificarse instrucciones SET
o Uso de SELECT
o No se ejecutan con TRUNCATE TABLE
Integridad de Datos• Creación
CREATE TRIGGER [ nombre_esquema . ]nombre_triggerON { tabla | vista }[ WITH <opciones_trigger_dml> [ ,...n ] ]{ FOR | AFTER | INSTEAD OF }{ [ INSERT ] [ , ] [ UPDATE ] [ , ] [ DELETE ] }[ WITH APPEND ][ NOT FOR REPLICATION ]AS { sentencias_sql [ ; ] [ ...n ] | EXTERNAL NAME
<method specifier [ ; ] > }
• Modificación: ALTER Trigger• Borrado: DROP Trigger
Integridad de Datos• Tipos
o FOR / AFTER: Se ejecutan después de la operación que los disparó
o INSTEAD OF: Se ejecutan en lugar de la operación que los disparó
Integridad de Datos• Desencadenador de INSERT
• Desencadenador de DELETE
• Desencadenador de UPDATEo Crea la tabla Deleted
(Datos anteriores a la modificación)o Crea la tabla Inserted
(Datos posteriores a la modificación)o IF UPDATE (Columna)