SQL: Joins y subqueries
SQL joins y subqueries son esenciales para consultas complejas. Aprende a usarlos correctamente y optimiza tus bases de datos en 2024.
Aprende SQL GRATIS y certifícateEn el ámbito de la programación con SQL, los joins y las subqueries son fundamentales para realizar consultas complejas y optimizar el rendimiento de las bases de datos. Este módulo se centra en el uso adecuado de estas técnicas, siguiendo las recomendaciones más recientes de la documentación oficial de SQL en 2024.
Joins en SQL
Los joins en SQL permiten combinar filas de dos o más tablas en función de una condición relacionada. Los tipos más comunes de joins son:
Inner join
El INNER JOIN
devuelve filas cuando hay una coincidencia en ambas tablas.
SELECT a.nombre, b.apellido
FROM empleados a
INNER JOIN departamentos b ON a.departamento_id = b.id;
Left join
El LEFT JOIN
devuelve todas las filas de la tabla izquierda y las filas coincidentes de la tabla derecha. Si no hay coincidencia, el resultado es NULL
.
SELECT a.nombre, b.apellido
FROM empleados a
LEFT JOIN departamentos b ON a.departamento_id = b.id;
Right join
El RIGHT JOIN
es lo inverso del LEFT JOIN
. Devuelve todas las filas de la tabla derecha y las filas coincidentes de la tabla izquierda.
SELECT a.nombre, b.apellido
FROM empleados a
RIGHT JOIN departamentos b ON a.departamento_id = b.id;
Full outer join
El FULL OUTER JOIN
devuelve filas cuando hay una coincidencia en una de las tablas o en ambas. Si no hay coincidencia, el resultado es NULL
.
SELECT a.nombre, b.apellido
FROM empleados a
FULL OUTER JOIN departamentos b ON a.departamento_id = b.id;
Subqueries en SQL
Las subqueries, también conocidas como consultas anidadas, son consultas dentro de otras consultas. Se utilizan para realizar operaciones complejas y filtrar datos de manera eficiente.
Subqueries en la cláusula SELECT
Permiten incluir resultados de una consulta en la lista de selección de otra consulta.
SELECT nombre,
(SELECT COUNT(*)
FROM proyectos
WHERE proyectos.empleado_id = empleados.id) AS num_proyectos
FROM empleados;
Subqueries en la cláusula FROM
Pueden actuar como tablas temporales dentro de una consulta principal.
SELECT sub.nombre, sub.total_salario
FROM (SELECT nombre, SUM(salario) AS total_salario
FROM empleados
GROUP BY nombre) sub;
Subqueries en la cláusula WHERE
Se utilizan para filtrar resultados basados en otra consulta.
SELECT nombre, salario
FROM empleados
WHERE salario > (SELECT AVG(salario)
FROM empleados);
Subqueries correlacionadas
Las subqueries correlacionadas dependen de la consulta externa para su ejecución.
SELECT nombre
FROM empleados a
WHERE salario > (SELECT AVG(salario)
FROM empleados b
WHERE a.departamento_id = b.departamento_id);
El uso adecuado de joins y subqueries en SQL es esencial para optimizar las consultas y mejorar el rendimiento de las bases de datos. Siguiendo las prácticas recomendadas y utilizando las técnicas avanzadas presentadas, se pueden realizar operaciones complejas de manera eficiente y precisa.
Lecciones de este módulo de SQL
Lecciones de programación del módulo Joins y subqueries del curso de SQL.
Ejercicios de programación en este módulo de SQL
Evalúa tus conocimientos en Joins y subqueries con ejercicios de programación Joins y subqueries de tipo Test, Puzzle, Código y Proyecto con VSCode.