You are on page 1of 20

SQL II

(Sylabus) 1. Creacin y mantenimiento de tablas:


Obligatoriedad en el ingreso de determinados campos y restricciones en los valores (sin duplicados, que cumplan ciertas reglas, etc.) Implicancia del uso de ndices e influencia en el mantenimiento de los datos (eliminacin de registros dependientes). Creacin de ndices secundarios. Creacin de campos calculados. Reglas definidas por el usuario.

2. Funciones (propias del MS SQL y del usuario):


Funciones del Sistema 1. Funciones agregadas. 2. De fecha y hora. 3. Matemticas. 4. Otras. Funciones del usuario. 1. Funciones escalares. 2. Funciones de resultados de conjuntos.

3. Aplicacin avanzada del Transact SQL:


Resumiendo, agrupando y buscando datos (searching, grouping and summarizing Data) Sub Consultas Consultas de eliminacin, actualizacin. Consultas avanzadas.

4. Creacin de disparadores (triggers):


Tipos de disparadores Cuando usar disparadores. Mantenimiento de disparadores (creacin, modificacin, eliminacin).

1.

Creacin y mantenimiento de tablas:


Obligatoriedad en el ingreso de determinados campos y restricciones en los valores (sin duplicados, que cumplan ciertas reglas, etc.)

El campo GuideID est definido como IDENTIDAD (Identity Specification : Yes). Identity Seed es el nmero en que se inicia la numeracin (4). Identity increment (3) es el aumento automtico de la numeracin : inicia en 4 y el siguiente es 7 (avanza de 3 3en 3)

Se inicia en 4 y aumenta de 3 en 3

El campo FirstName est definido para que no permita nulos (Allow Nulls desmarcado). Es OBLIGATORIO En cambio el campo Qualifications si permite valores nulos (est marcado con un check)

Implicancia del uso de ndices e influencia en el mantenimiento de los datos (eliminacin de registros dependientes). Creacin de ndices secundarios

Existe una relacin entre las tablas a travs del campo CustomerID. En la especificacin de Agregar O Actualizar (INSERT or UPDATE Specific) para el caso de Delete Rule seala No Action

Implica que cuando se quiera eliminar un registro de la tabla Customers no

va a hacer nada (No Action) o NO lo va a permitir.

Se ha querido eliminar el registro que tiene la clave ALFKI de la tabla Customers y la Base de Datos no lo permite pues existe la restriccin : FK_Orders_Customers (relacin entre las tablas Orders y Customers). Hay otras acciones que se pueden realizar : o Cascade : Elimina el registro de Customers y tambin los registros de Orders. o Set Null : Remplaza en el campo con el valor Null o Set Default : coloca en el campo el valor por omisin (Default) Creacin de campos calculados

El campo Completo est definido como Campo calculado (Formula)

Reglas definidas por el usuario

Las reglas se refieren solamente a una sola columna, a la cual se est vinculando la regla correspondiente. Se asume que no se puede relacionar con el resto de campos de la tabla. Supongamos que quisiera crear la regla que solamente permite que el valor ingresado en la columna sea mayor que cero : create rule SalaryRule as @Salary > 0 La variable @Salary se refiere al valor que se est ingresando en esa columna. Ese es el valor que se va a verificar con la regla. Una vez creada la regla se tiene que vincular al campo de la tabla correspondiente : Por ejemplo quiero vincular la regla creada ( SalaryRule) el campo Numera de la tabla Guide, escribiramos la siguiente instruccin : sp_bindrule 'SalaryRule', 'Guide.Numera' Esta misma regla podemos asociarla a otro campo de otra tabla y va a estar verificando que el valor ingresado en esa columna es mayor que cero. Si quisieramos desvincular la regla al campo de la tabla escribimos : EXEC sp_unbindrule Guide.Numera Y si quisieramos eliminar la regla de manera total escribimos : DROP Rule 'SalaryRule'

2. Funciones (propias del MS SQL y del usuario):


Funciones del Sistema 1. Funciones agregadas. Avg (promedio), Count(contar), Max(mximo), Min(mnimo), Sum, etc.

Estamos usando las funciones avg (promedio), sum(suma), max(mximo), min(mnimo) de los registros visualizados en la imagen anterior (comprubelo).

2. Fecha y hora. DateAdd (sumar das), Datediff(restar dias), Datepart(mximo), Day(dia), Getdate(), Month(Mes), Year(Ao) etc. Abrev. en func. de fecha Year Quarter Month DayofYear Day Week Weekday Tour Minute Second yy, yyyy qq, q mm, m dy, d dd, d wk, ww dw hh mi, n ss, s

3. Matemticas. Ceiling (Entero superior), Floor (Entero inferior), Power(Potencia), Round(redondeo), Rand(azahar), Sqrt( raiz cuadrada), Square(cuadrado) etc.

4. Cadenas (Strings). Charindex (encontrar valor), concat(), Left (caracteres a la izquierda), Len(Longitud), Lower(minusculas), LTrim(espacios a la izquierda), Replace(remplazar), RTrim(espacios a la derecha), str(), substring(), upper, etc.

Funciones del Usuario 1. Funciones escalares. CREATE FUNCTION FunctionName (InputParameters) RETURNS DataType AS BEGIN Code RETURN Expression END Ejemplo : CREATE FUNCTION ufn_Volumen -- Input dimensiones en centimetros. (@largo decimal(4,1), @ancho decimal(4,1), @altura decimal(4,1) ) RETURNS decimal(12,3) -- Centimetros Cubicos. AS Begin Return ( @largo * @ancho * @altura ) End; GO 2. Funciones de resultados de conjuntos. CREATE FUNCTION NombreFuncion (InputParameters) RETURNS Table AS RETURN (Select Statement) CREATE FUNCTION ClientesPais (@pais varchar(50) = Null) RETURNS Table AS RETURN( SELECT * FROM Customers WHERE Country LIKE '%' + @pais + '%' ) Luego, se ejecuta la function de la siguiente manera :

3. Aplicacin avanzada del Transact SQL:


Resumiendo, agrupando y buscando datos (searching, grouping and summarizing Data) Grouping :

ROLLING UP : generando un subtotal.

HAVING : hacer un filtro despus de obtener los resultados.

Sub Consultas

Consultas de eliminacin.

Consultas de actualizacin. Inicialmente se tiene lo siguiente :

Luego se actualizan dos campos de la tabla :

Procedimientos almacenados (Stored Procedures).

Usando los conocimientos anteriores (funciones del sistema y del usuario) se pueden crear procedimientos almacenados con contenidos ms variados.

5. Creacin de disparadores (triggers):


Tipos de disparadores (Triggers) Creando un disparador (trigger) CREATE TRIGGER <trigger name> ON [<schema name>.]<table or view name> [WITH ENCRYPTION | EXECUTE AS <CALLER | SELF | <user> >] {{{FOR|AFTER} <[DELETE] [,] [INSERT] [,] [UPDATE]>} | INSTEAD OF} [WITH APPEND] [NOT FOR REPLICATION] AS < <sql statements> | EXTERNAL NAME <assembly method specifier> > Mantenimiento de disparadores (creacin, modificacin, eliminacin). Desabilitando un disparador (trigger) DISABLE TRIGGER trig_01, trig_02 ON tabla DISABLE TRIGGER ALL ON tabla DISABLE TRIGGER ALL ON DATABASE DISABLE TRIGGER ALL ON ALL SERVER Habilitando un disparador (trigger) ENABLE TRIGGER ALL ON ALL SERVER Modificando un disparador (trigger) sp_helptext trig01 (muestra el contenido del disparador y luego lo copia y lo pega para editarlo) Eliminando un disparador (trigger) DROP TRIGGER trig01 DROP TRIGGER trig01 ON DATABASE DROP TRIGGER trig01 ON ALL SERVER Cuando usar disparadores.

You might also like