Módulo 05: Uniones de
Tablas
SESIÓN 05: Laboratorio - Uniones de Tablas
Objetivo de Aprendizaje
Combinar datos de múltiples tablas utilizando diferentes tipos de
uniones (JOIN).
Introducción a las Uniones
(JOIN)
Las uniones nos permiten combinar registros de dos o más tablas en una base de datos relacional, revelando
relaciones ocultas en nuestros datos.
Conectar Tablas
Establece relaciones entre tablas usando columnas comunes.
Filtrar Datos
Selecciona solo la información relevante de múltiples fuentes.
Análisis Completo
Obtén una visión integral de tus datos relacionados.
¿Por qué son importantes?
Los datos empresariales suelen estar
distribuidos en múltiples tablas
Permiten recuperar datos relacionados en una
sola consulta
Son fundamentales para el análisis de datos
completo
JOIN _
Ejemplo: Una compañía quiere analizar qué productos están generando más ingresos pero necesita datos
de:
Tabla de productos (nombres, categorías)
Tabla de ventas (cantidades, fechas)
Tabla de clientes (información demográfica)
Modelo de Datos Relacional
Un modelo relacional distribuye datos en tablas separadas para:
Evitar redundancia
Mejorar integridad de datos
Facilitar mantenimiento
Ejemplo de banco:
Tabla Clientes Tabla Cuentas Tabla Transacciones
ID de cliente ID de cuenta ID de transacción
Nombre ID de cliente ID de cuenta
Dirección Tipo de cuenta Tipo de transacción
Teléfono Saldo Monto
Fecha
Tipos de Uniones (JOIN)
INNER JOIN
Devuelve filas cuando hay coincidencias en ambas tablas
Es el tipo de unión más común
Solo incluye datos donde existe la relación
SELECT c.nombre, p.nombre AS producto, v.cantidad, v.precio_unitario
FROM clientes c
INNER JOIN ventas v ON c.id_cliente = v.id_cliente
INNER JOIN productos p ON v.id_producto = p.id_producto;
LEFT JOIN (o LEFT OUTER JOIN)
Devuelve todas las filas de la tabla izquierda, más las filas coincidentes de la tabla derecha
Si no hay coincidencia, los resultados de la tabla derecha contendrán NULL
SELECT c.nombre, v.id_venta, v.fecha_venta
FROM clientes c
LEFT JOIN ventas v ON c.id_cliente = v.id_cliente;
RIGHT JOIN (o RIGHT OUTER JOIN)
Devuelve todas las filas de la tabla derecha, más las filas coincidentes de la tabla izquierda
Si no hay coincidencia, los resultados de la tabla izquierda contendrán NULL
SELECT p.nombre, v.id_venta, v.cantidad
FROM ventas v
RIGHT JOIN productos p ON v.id_producto = p.id_producto;
FULL JOIN (o FULL OUTER JOIN)
Devuelve filas cuando hay coincidencias en cualquiera de las tablas
Si no hay coincidencia, el lado que falta contendrá NULL
No disponible en MySQL, pero se puede simular con UNION
-- Simulación de FULL JOIN en MySQL
SELECT c.nombre, v.id_venta
FROM clientes c
LEFT JOIN ventas v ON c.id_cliente = v.id_cliente
UNION
SELECT c.nombre, v.id_venta
FROM clientes c
RIGHT JOIN ventas v ON c.id_cliente = v.id_cliente
WHERE c.id_cliente IS NULL;
Diferencias entre tipos de JOIN
Tipo de JOIN Filas incluidas
INNER JOIN Solo coincidencias L
LEFT JOIN Todas las filas de la tabla izquierda + coincidencias
de la derecha / L
RIGHT JOIN Todas las filas de la tabla derecha + coincidencias
de la izquierda § L
FULL JOIN Todas las filas de ambas tablas / §
Unión de Múltiples Tablas
Las consultas complejas a menudo requieren unir más de dos tablas:
SELECT
c.nombre AS cliente,
p.nombre AS producto,
cat.nombre AS categoria,
v.cantidad,
v.precio_unitario,
v.cantidad * v.precio_unitario AS total
FROM ventas v
INNER JOIN clientes c ON v.id_cliente = c.id_cliente
INNER JOIN productos p ON v.id_producto = p.id_producto
INNER JOIN categorias cat ON p.id_categoria = cat.id_categoria
WHERE v.fecha_venta BETWEEN '2024-01-01' AND '2024-03-31';
Break
Tomemos 5 minutos para descansar y refrescar la mente.
¡Regresamos pronto!
Laboratorio Práctico
Objetivo: Realizar análisis de datos utilizando funciones de
agregación
Recursos:
Configuración del laboratorio
Laboratorio
Aplicación Práctica: Análisis de Datos con
JOIN
Ejemplo de análisis financiero:
-- Total de ventas por categoría de producto
SELECT
cat.nombre AS categoria,
SUM(v.cantidad * v.precio_unitario) AS ventas_totales
FROM ventas v
INNER JOIN productos p ON v.id_producto = p.id_producto
INNER JOIN categorias cat ON p.id_categoria = cat.id_categoria
GROUP BY cat.nombre
ORDER BY ventas_totales DESC;
Aplicación Práctica: Análisis de Datos con
JOIN
Ejemplo de análisis de marketing:
-- Productos que nunca se han vendido
SELECT p.id_producto, p.nombre, p.precio
FROM productos p
LEFT JOIN ventas v ON p.id_producto = v.id_producto
WHERE v.id_venta IS NULL;
Evaluación Sesión 04
Acceder
Objetivo de aprendizaje
Combinar datos de múltiples tablas utilizando diferentes tipos de
uniones (JOIN).
¿Consideras que el objetivo de aprendizaje fue alcanzado?