Fundamentos de SQL y PL/SQL: consultas, triggers, procedimientos y funciones
Resumen
El documento repasa las sentencias básicas de consulta SQL (SELECT, WHERE, ORDER BY, GROUP BY y HAVING) con ejemplos. Después explica en PL/SQL qué son los triggers o disparadores, los procedimientos y las funciones, junto con su estructura básica. Sirve como guía rápida para entender cómo filtrar, agrupar y automatizar operaciones sobre bases de datos.
Puntos clave
- SELECT muestra datos de tablas, WHERE filtra registros y ORDER BY ordena por un campo (alfabéticamente por defecto).
- GROUP BY agrupa registros y HAVING filtra sobre grupos ya formados, mientras que WHERE filtra filas antes de agrupar.
- Un trigger es un bloque de código que se ejecuta automáticamente ante un evento (INSERT, UPDATE o DELETE) sobre una tabla.
- Los triggers pueden ser BEFORE, AFTER o INSTEAD OF, y a nivel de sentencia o de fila (FOR EACH ROW).
- Los procedimientos y funciones son bloques PL/SQL con nombre que pueden recibir parámetros y ser invocados desde distintos entornos.
- La diferencia principal entre procedimiento y función es que la función devuelve un valor mediante la cláusula RETURN.
Sentencias y Comandos SQL
Consultas y Filtros de Datos
- SELECT: Hace consultas para mostrar tablas o datos.
- WHERE: Especificamos cuándo queremos mostrar algo en específico. Ejemplo:
WHERE CompanyName LIKE 'B%'(que sea igual o empiece por B). - ORDER BY: Lo ordena por algún campo que yo especifique; se ordena alfabéticamente por defecto. Ejemplo:
ORDER BY ContactName. - GROUP BY: Permite agrupar y seleccionar registros. Ejemplo:
GROUP BY SupplierID. - HAVING: Nos permite hacer filtros en bases de datos que ya están agrupados.
Ejemplo de consulta con agrupamiento:
SELECT OrderID, COUNT(OrderID) as Cantidad FROM [Order Details] GROUP BY OrderID HAVING COUNT(OrderID) > 2
Programación en PL/SQL
Los Triggers (Disparadores)
Es un bloque de código que se ejecuta automáticamente cuando ocurre algún evento (como insertar, actualizar o eliminar) sobre una tabla.
Estructura de un Trigger:
CREATE OR REPLACE TRIGGER NOMBREDISPARADOR MOMENTO -- before, after o instead of EVENTO -- insert, update o delete OF CAMPOS -- solo para update ON NOMBRETABLA NIVEL -- puede ser a nivel de sentencia (statement) o de fila (for each row) WHEN CONDICION -- opcional BEGIN CUERPO DEL DISPARADOR -- sentencias END NOMBREDISPARADOR;
Los Procedimientos
Los procedimientos o funciones son bloques PL/SQL con nombre, que pueden recibir parámetros y pueden ser invocados desde distintos entornos: SQL*PLUS, Oracle*Forms, desde otros procedimientos y funciones, y desde otras herramientas Oracle y aplicaciones.
Los procedimientos y funciones llevan a cabo tareas específicas, y su mayor diferencia radica en que las funciones devuelven un valor.
Estructura de un Procedimiento:
CREATE [OR REPLACE] PROCEDURE [esquema].nombre-procedimiento
(nombre-parámetro {IN | OUT | IN OUT} tipo de dato, ...) {IS | AS}
Declaración de variables;
Declaración de constantes;
Declaración de cursores;
BEGIN
Cuerpo del subprograma PL/SQL;
EXCEPTION
Bloque de excepciones PL/SQL;
END;
Las Funciones
Son bloques de código que permiten agrupar y organizar sentencias SQL que se ejecutan al invocar la función. Contiene una cláusula RETURN.
Estructura de una Función:
CREATE OR REPLACE FUNCTION NOMBREFUNCION(PARAMETRO1 TIPODATO) RETURN TIPODEDATO IS DECLARACION DE VARIABLES BEGIN ACCIONES; RETURN VALOR; END;
Descargar
PDF Word HTMLPreguntas frecuentes
¿Cuál es la diferencia entre WHERE y HAVING en SQL?
WHERE filtra registros individuales antes de agrupar, mientras que HAVING filtra grupos ya agrupados con GROUP BY. Por ejemplo, HAVING COUNT(OrderID) > 2 solo muestra los grupos con más de dos elementos.
¿Qué es un trigger en PL/SQL?
Un trigger es un bloque de código que se ejecuta automáticamente cuando ocurre un evento como insertar, actualizar o eliminar sobre una tabla. Se define con CREATE OR REPLACE TRIGGER.
¿En qué se diferencian un procedimiento y una función?
Ambos son bloques PL/SQL con nombre que realizan tareas específicas y pueden recibir parámetros. La función, a diferencia del procedimiento, devuelve un valor mediante la cláusula RETURN.
Ponte a prueba
Tarjetas de repaso
Pulsa una tarjeta para ver la respuesta.
Test
Preguntas generadas con IA a partir del documento: comprueba las respuestas con el texto.