Operaciones de Agrupación Avanzada
SELECT ESPECIE, ZOOLOGICO, SUM(NUMERO) AS CANTIDAD FROM ESPECIES GROUP BY ESPECIE, ZOOLOGICO WITH CUBESELECT ESPECIE, ZOOLOGICO, SUM(NUMERO) AS CANTIDAD FROM ESPECIES GROUP BY ESPECIE, ZOOLOGICO WITH ROLLUP
Procedimientos Almacenados y Funciones
Procedimiento Almacenado con Validación
CREATE PROCEDURE EMPLEADOSCIUDAD
@CITY VARCHAR(50) = NULL
AS
IF @CITY IS NULL
BEGIN
RAISERROR('NO SE PERMITEN VALORES NULOS', 16, 1);
RETURN
END
SELECT * FROM TRABAJADORES WHERE CIUDAD IN (@CITY);
EXECUTE EMPLEADOSCIUDAD 'MADRID';
Función Definida por el Usuario
CREATE FUNCTION TRABAJADORESDE (@CITY VARCHAR(50))
RETURNS INT
AS
BEGIN
RETURN (SELECT AVG(EDAD) AS MEDIA FROM TRABAJADORES WHERE CIUDAD = @CITY);
END
Trigger de Actualización
CREATE TRIGGER ACTUALIZAFECHA
ON PRUEBAS.DBO.PEDIDOS
AFTER INSERT
AS
BEGIN
UPDATE PEDIDOS SET FECHA = GETDATE() WHERE NUM_PED = (SELECT NUM_PED FROM INSERTED);
END
Consultas SQL sobre Ciclistas
SELECT MAX(EDAD) AS EDADMAXIMA FROM CICLISTA WHERE NOMEQ = 'TELECOM'SELECT NOMBRE FROM CICLISTA WHERE NOMEQ NOT IN ('KELME')SELECT COUNT(DORSAL) AS NUMCICLISTA, NOMEQ FROM CICLISTA GROUP BY NOMEQSELECT NOMBRE FROM CICLISTA WHERE NOMEQ = (SELECT NOMEQ FROM CICLISTA WHERE NOMBRE = 'MIGUEL INDURAIN')SELECT AVG(EDAD) AS MEDIA FROM CICLISTA WHERE NOMEQ = 'TVM'
Conceptos Clave de SQL Server
- Bloqueos: Lectura (Compartido), Escritura (Exclusivo), Menos restrictivo (Compartido de intención).
- Procedimiento Almacenado: Grupo de una o varias instrucciones Transact-SQL o referencia a un método CLR de Microsoft .NET.
- HAVING: Indica si una expresión de columna especificada en una lista
GROUP BY es agregada o no. GROUPING devuelve 1 para agregado y 0 para no agregado. - Funciones de Agregado: Realizan un cálculo sobre un conjunto de valores y devuelven un solo valor.
- Funciones Definidas por el Usuario: Rutinas que aceptan parámetros, realizan acciones (como cálculos complejos) y devuelven un resultado.
- CUBE: Operador que genera un conjunto de resultados útil para informes de tabulación cruzada.
Notas Técnicas
- Devolver código de error (Proc. Almac.):
RETURN - Devolver valores de salida (Proc. Almac.):
OUTPUT - Funciones de usuario vs. Proc. Almacenados: Las funciones pueden devolver valores de tablas y realizar varias instrucciones.
- Funciones de usuario vs. Vistas: Las funciones pueden devolver valores de tabla en línea.