Píldora TAI CXIII; Domina SQL: Joins, Triggers y Más

🧠 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 JOINDescripciónVisual
INNER JOINDevuelve los registros que tienen coincidencias en ambas tablas A y B
LEFT JOINTodos los registros de A, y coincidencias con B (si existen)
RIGHT JOINTodos los registros de B, y coincidencias con A (si existen)
FULL JOINTodos los registros cuando hay coincidencia en A o B
CROSS JOINProducto 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

ABA OR BA AND BA XOR B
00000
01101
10101
11110

✅ Esta tabla lógica es clave para filtrar resultados condicionales.


🗃 Motores de almacenamiento: MyISAM vs InnoDB

MotorCaracterísticas principales
MyISAMRápido en consultas, pero sin soporte de transacciones ni integridad referencial.
InnoDBSoporta 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.

Respuesta

  1. […] Píldora TAI CXIII; Domina SQL: Joins, Triggers y Más – Anacrolibrum […]

    Me gusta

Deja un comentario