🧠 SQL Avanzado: Joins, Procedimientos, Subconsultas y Triggers
💾 Domina el lenguaje SQL desde la lógica de combinación de datos hasta la automatización con procedimientos almacenados. Visual, directo y práctico.
🧩 Joins del SQL: Combinando tablas con lógica
Un JOIN es la forma en la que combinamos registros de dos o más tablas en función de una condición relacionada. Aquí tienes una guía visual de los tipos más utilizados:
🔗 Tipos de JOIN:
| Tipo JOIN | Descripción | Visual |
|---|---|---|
| INNER JOIN | Devuelve los registros que tienen coincidencias en ambas tablas A y B | |
| LEFT JOIN | Todos los registros de A, y coincidencias con B (si existen) | |
| RIGHT JOIN | Todos los registros de B, y coincidencias con A (si existen) | |
| FULL JOIN | Todos los registros cuando hay coincidencia en A o B | |
| CROSS JOIN | Producto cartesiano entre A y B (todas las combinaciones posibles) |
📌 Condición clave: ON A.clave = B.clave define cómo se relacionan los datos.
⚙️ Procedimientos almacenados (Stored Procedures)
Los procedimientos son bloques de código SQL precompilados que puedes ejecutar múltiples veces con distintos parámetros. Mejoran el rendimiento y centralizan la lógica.
🛠 Ejemplo básico:
CREATE PROCEDURE procSimple AS
SELECT * FROM Hijos;
Para ejecutarlo:
EXEC procSimple;
🔁 Con parámetros:
CREATE PROCEDURE procParam @nombre CHAR(50)
AS
SELECT * FROM Hijos WHERE nombre = @nombre;
📤 Procedimiento con retorno de valor:
CREATE PROCEDURE procSuma @p1 INT, @p2 INT, @resultado INT OUTPUT
AS
SET @resultado = @p1 + @p2;
🔐 Triggers: Automatiza respuestas ante cambios
Un trigger se dispara automáticamente ante eventos en una tabla (INSERT, UPDATE, DELETE).
🔔 Ejemplo: trigger tras un INSERT
CREATE TRIGGER trg_hijos
ON Hijos
AFTER INSERT
AS
INSERT INTO copia_hijos VALUES (dni, nombre, dni_padre);
📌 Puedes usar las tablas INSERTED y DELETED para capturar los valores anteriores y posteriores a una operación.
🔎 Subconsultas y lógica comparativa
Las subconsultas permiten usar el resultado de una consulta dentro de otra, mejorando precisión y eficiencia.
🎯 Ejemplo: Precio superior a la media
SELECT * FROM PRODUCTOS
WHERE PRECIO > (SELECT AVG(PRECIO) FROM PRODUCTOS);
🧠 Subconsulta en FROM
SELECT t1.id, t2.b
FROM (SELECT * FROM T3 WHERE c IS NULL) t1,
T2
WHERE t1.d = t2.d;
🟨 IN, ANY, ALL, EXISTS son operadores comunes para comparar valores con subconsultas.
💾 Lógica de operadores en SQL
| A | B | A OR B | A AND B | A XOR B |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 1 | 0 | 1 |
| 1 | 0 | 1 | 0 | 1 |
| 1 | 1 | 1 | 1 | 0 |
✅ Esta tabla lógica es clave para filtrar resultados condicionales.
🗃 Motores de almacenamiento: MyISAM vs InnoDB
| Motor | Características principales |
|---|---|
| MyISAM | Rápido en consultas, pero sin soporte de transacciones ni integridad referencial. |
| InnoDB | Soporta transacciones, claves foráneas y bloqueo a nivel de fila. Más seguro para integridad. |
CREATE TABLE ejemplo (
id INT
) ENGINE = INNODB;
🧠 Conclusión
Este resumen es una herramienta visual y didáctica perfecta para repasar los fundamentos avanzados de SQL: joins, lógica, procedimientos, triggers y más.
🎯 Si estás preparando oposiciones, desarrollando una app o simplemente perfeccionando tu dominio del lenguaje SQL, guarda esta guía y compártela con quien la necesite.


Replica a Píldoras TAI de Anacrolibrum – Anacrolibrum Cancelar la respuesta