Volver al curso

SQL y Bases de Datos: Gestion de Datos para el Mundo Real

leccion
11 / 12
beginner
12 horas
SQL en el Mundo Real

Subconsultas y Vistas

Lectura
40 min~1 min lectura

Consultas Avanzadas

Las subconsultas y vistas son herramientas poderosas que te permiten crear consultas mas complejas y reutilizables.

Subconsultas en WHERE

-- Productos cuyo precio esta por encima del promedio
SELECT * FROM productos 
WHERE precio > (SELECT AVG(precio) FROM productos);

-- Clientes que han realizado mas de 5 pedidos
SELECT * FROM clientes 
WHERE id IN (
    SELECT cliente_id 
    FROM pedidos 
    GROUP BY cliente_id 
    HAVING COUNT(*) > 5
);

-- Productos nunca pedidos
SELECT * FROM productos 
WHERE id NOT IN (
    SELECT DISTINCT producto_id FROM pedido_items
);

Subconsultas en FROM (Tablas Derivadas)

SELECT 
    categoria,
    total_productos,
    promedio_precio
FROM (
    SELECT 
        c.nombre as categoria,
        COUNT(p.id) as total_productos,
        AVG(p.precio) as promedio_precio
    FROM productos p
    INNER JOIN categorias c ON p.categoria_id = c.id
    GROUP BY c.id
) as resumen
WHERE total_productos > 10;

Vistas: Consultas Guardadas

-- Crear una vista
CREATE VIEW vista_pedidos_clientes AS
SELECT 
    ped.id as pedido_id,
    ped.fecha_pedido,
    cli.nombre as cliente,
    cli.email,
    ped.total
FROM pedidos ped
INNER JOIN clientes cli ON ped.cliente_id = cli.id;

-- Usar la vista como tabla
SELECT * FROM vista_pedidos_clientes 
WHERE fecha_pedido > 2025-01-01;

Ventajas de las Vistas

  • Simplifican consultas complejas
  • Protegen datos sensibles (mostrar solo columnas necesarias)
  • Permiten cambiar estructura sin modificar aplicaciones
  • Se actualizan automaticamente