Módulo 4: Consultas SQL Avanzadas

4.1 JOIN: Combinación de Tablas

INNER JOIN, LEFT JOIN, RIGHT JOIN:

Aprenderás a utilizar diferentes tipos de JOIN para combinar datos de múltiples tablas. Los JOIN permiten acceder a información relacionada en diferentes tablas.

    -- INNER JOIN: Combina registros coincidentes en ambas tablas
    SELECT clientes.nombre, pedidos.fecha
    FROM clientes
    INNER JOIN pedidos ON clientes.id = pedidos.cliente_id;

    -- LEFT JOIN: Incluye todos los registros de la tabla izquierda y los coincidentes de la derecha
    SELECT productos.nombre, ventas.cantidad
    FROM productos
    LEFT JOIN ventas ON productos.id = ventas.producto_id;
  

JOIN múltiples tablas:

Aprenderás a combinar tres o más tablas en una consulta utilizando JOINs múltiples.

    SELECT c.nombre, p.nombre, v.fecha
    FROM clientes AS c
    JOIN pedidos AS p ON c.id = p.cliente_id
    JOIN ventas AS v ON p.id = v.pedido_id;
  

Subconsultas:

Las subconsultas son consultas anidadas dentro de otras consultas. Pueden utilizarse en diferentes partes de una consulta, como condiciones WHERE o cláusulas FROM.

    SELECT nombre
    FROM clientes
    WHERE id IN (SELECT cliente_id FROM pedidos WHERE total > 1000);
  

4.2 Modificación de Datos

INSERT, UPDATE, DELETE:

Aprenderás a insertar, actualizar y eliminar datos en una tabla.

    -- INSERT: Agregar un nuevo registro
    INSERT INTO productos (nombre, precio) VALUES ('Nuevo Producto', 50);

    -- UPDATE: Actualizar registros existentes
    UPDATE clientes SET nombre = 'Nuevo Nombre' WHERE id = 3;

    -- DELETE: Eliminar registros
    DELETE FROM pedidos WHERE fecha < '2023-01-01';
  

Transacciones y control de cambios:

Las transacciones te permiten agrupar una serie de operaciones SQL en una única unidad lógica. Aprenderás a utilizar transacciones para garantizar la integridad de los datos y el control de cambios.

    -- Inicio de una transacción
    START TRANSACTION;

    -- Realización de operaciones dentro de la transacción
    INSERT INTO compras (producto_id, cantidad) VALUES (5, 10);
    UPDATE inventario SET cantidad = cantidad - 10 WHERE producto_id = 5;

    -- Confirmación de la transacción
    COMMIT;

    -- Revertir cambios en la transacción
    ROLLBACK;
  

Recursos adicionales: