En SQL, las operaciones JOIN se utilizan para combinar filas de dos o más tablas basadas en una condición relacionada entre ellas. Las operaciones JOIN son fundamentales para trabajar con bases de datos relacionales, ya que permiten extraer datos de múltiples tablas de manera eficiente y coherente.

Conceptos Clave

  1. JOIN: Combina filas de dos o más tablas basadas en una condición.
  2. Tipos de JOIN:
    • INNER JOIN
    • LEFT JOIN
    • RIGHT JOIN
    • FULL OUTER JOIN
  3. Condición de JOIN: Generalmente se basa en la igualdad de columnas entre las tablas.

Tipos de JOIN

INNER JOIN

El INNER JOIN devuelve solo las filas que tienen coincidencias en ambas tablas. Es el tipo de JOIN más común.

Sintaxis:

SELECT columnas
FROM tabla1
INNER JOIN tabla2
ON tabla1.columna_comun = tabla2.columna_comun;

Ejemplo:

SELECT employees.name, departments.department_name
FROM employees
INNER JOIN departments
ON employees.department_id = departments.id;

LEFT JOIN

El LEFT JOIN devuelve todas las filas de la tabla de la izquierda (tabla1), y las filas coincidentes de la tabla de la derecha (tabla2). Si no hay coincidencia, las filas de la tabla de la derecha contendrán NULL.

Sintaxis:

SELECT columnas
FROM tabla1
LEFT JOIN tabla2
ON tabla1.columna_comun = tabla2.columna_comun;

Ejemplo:

SELECT employees.name, departments.department_name
FROM employees
LEFT JOIN departments
ON employees.department_id = departments.id;

RIGHT JOIN

El RIGHT JOIN es similar al LEFT JOIN, pero devuelve todas las filas de la tabla de la derecha (tabla2) y las filas coincidentes de la tabla de la izquierda (tabla1). Si no hay coincidencia, las filas de la tabla de la izquierda contendrán NULL.

Sintaxis:

SELECT columnas
FROM tabla1
RIGHT JOIN tabla2
ON tabla1.columna_comun = tabla2.columna_comun;

Ejemplo:

SELECT employees.name, departments.department_name
FROM employees
RIGHT JOIN departments
ON employees.department_id = departments.id;

FULL OUTER JOIN

El FULL OUTER JOIN devuelve todas las filas cuando hay una coincidencia en una de las tablas. Si no hay coincidencia, las filas contendrán NULL en las columnas de la tabla que no tiene coincidencia.

Sintaxis:

SELECT columnas
FROM tabla1
FULL OUTER JOIN tabla2
ON tabla1.columna_comun = tabla2.columna_comun;

Ejemplo:

SELECT employees.name, departments.department_name
FROM employees
FULL OUTER JOIN departments
ON employees.department_id = departments.id;

Ejercicio Práctico

Ejercicio 1: INNER JOIN

Instrucción: Usa INNER JOIN para combinar las tablas orders y customers y obtener una lista de todos los pedidos junto con el nombre del cliente.

Tablas:

  • orders (order_id, order_date, customer_id)
  • customers (customer_id, customer_name)

Solución:

SELECT orders.order_id, orders.order_date, customers.customer_name
FROM orders
INNER JOIN customers
ON orders.customer_id = customers.customer_id;

Ejercicio 2: LEFT JOIN

Instrucción: Usa LEFT JOIN para obtener una lista de todos los clientes y sus pedidos. Incluye a los clientes que no tienen pedidos.

Solución:

SELECT customers.customer_name, orders.order_id
FROM customers
LEFT JOIN orders
ON customers.customer_id = orders.customer_id;

Ejercicio 3: RIGHT JOIN

Instrucción: Usa RIGHT JOIN para obtener una lista de todos los pedidos y los nombres de los clientes. Incluye los pedidos que no tienen un cliente asociado.

Solución:

SELECT orders.order_id, customers.customer_name
FROM orders
RIGHT JOIN customers
ON orders.customer_id = customers.customer_id;

Ejercicio 4: FULL OUTER JOIN

Instrucción: Usa FULL OUTER JOIN para obtener una lista completa de todos los clientes y pedidos, incluyendo aquellos que no tienen coincidencias en la otra tabla.

Solución:

SELECT customers.customer_name, orders.order_id
FROM customers
FULL OUTER JOIN orders
ON customers.customer_id = orders.customer_id;

Resumen

En esta sección, hemos aprendido sobre las operaciones JOIN en SQL, que son esenciales para combinar datos de múltiples tablas. Hemos cubierto los tipos de JOIN más comunes: INNER JOIN, LEFT JOIN, RIGHT JOIN y FULL OUTER JOIN, y hemos practicado con ejemplos y ejercicios prácticos. Con estos conocimientos, estarás preparado para trabajar con datos distribuidos en varias tablas de manera eficiente.

Curso de SQL

Módulo 1: Introducción a SQL

Módulo 2: Consultas básicas de SQL

Módulo 3: Trabajando con múltiples tablas

Módulo 4: Filtrado avanzado de datos

Módulo 5: Manipulación de datos

Módulo 6: Funciones avanzadas de SQL

Módulo 7: Subconsultas y consultas anidadas

Módulo 8: Índices y optimización de rendimiento

Módulo 9: Transacciones y concurrencia

Módulo 10: Temas avanzados

Módulo 11: SQL en la práctica

Módulo 12: Proyecto final

© Copyright 2024. Todos los derechos reservados