En 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
Guarda tu progreso
Inicia sesión para no perder tu progreso y accede a miles de tutoriales, ejercicios prácticos y nuestro asistente de IA.
Más de 25.000 desarrolladores ya confían en CertiDevs
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.
Completa SQL y certifícate
Únete a nuestra plataforma y accede a miles de tutoriales, ejercicios prácticos, proyectos reales y nuestro asistente de IA personalizado para acelerar tu aprendizaje.
Asistente IA
Resuelve dudas al instante
Ejercicios
Practica con proyectos reales
Certificados
Valida tus conocimientos
Más de 25.000 desarrolladores ya se han certificado con CertiDevs