Dominio de SQL Server: Procedimientos, Funciones y Agregaciones Avanzadas

Informática2,96 KB

Operaciones de Agrupación Avanzada

  • SELECT ESPECIE, ZOOLOGICO, SUM(NUMERO) AS CANTIDAD FROM ESPECIES GROUP BY ESPECIE, ZOOLOGICO WITH CUBE
  • SELECT 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 NOMEQ
  • SELECT 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.

Descargar

PDF Word HTML