Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Consultas Anidadas | Subconsultas Anidadas
SQL Intermedio
course content

Contenido del Curso

SQL Intermedio

SQL Intermedio

1. Agrupamiento
2. Subconsultas Anidadas
3. Uniendo Tablas
4. DDL y DML en SQL

bookConsultas Anidadas

¡Excelentes noticias!

La administración escolar expresa satisfacción con nuestro rendimiento reciente y señala estar listos para avanzar aún más.

Mientras ellos comienzan su receso de verano y nosotros entramos en un período de flexibilidad, aprovechamos la oportunidad para profundizar en metodologías innovadoras y mejorar nuestra interacción con SQL.

En particular, nuestro objetivo es explorar consultas anidadas, un concepto fundamental dentro de las operaciones de SQL.

Para ilustrar este concepto, consideremos un ejemplo ilustrativo tomado de nuestra base de datos organizacional. Con la expansión de la empresa, se incorpora una nueva entidad, específicamente department. Esta adición aumenta nuestra estructura de datos, influyendo en la dinámica de nuestras operaciones de base de datos.

Examinemos la estructura de esta nueva tabla para entender mejor su papel dentro de nuestra arquitectura de base de datos en evolución:

Como puede ver, la nueva tabla contiene departamentos, sus tipos y presupuestos. Y en la tabla employee, como recordará, hay información sobre el departamento al que pertenece cada empleado.

Consideremos un ejemplo en el que utilizamos consultas anidadas para recuperar a aquellos empleados que trabajan en departamentos con presupuestos de $500,000 o menos.

Así es cómo se verá nuestra consulta:

1234567
SELECT * FROM employees WHERE department IN ( SELECT name FROM department WHERE budget <= 500000 )
copy

Como pueden ver, esta sintaxis es bastante intuitiva. Utilizamos una cláusula WHERE para especificar que el nombre del departamento debe estar presente en la tabla que recuperamos con la consulta interna.

Desglosemos esta consulta en dos separadas para ver cómo funciona. Primero, recuperemos los nombres de los departamentos con presupuestos de $500,000 o menos (nuestra consulta interna):

123
SELECT name FROM department WHERE budget <= 500000
copy

Como pueden ver, obtuvimos 5 departamentos en respuesta. Recuerden esta tabla.

Ahora, considerando el resultado obtenido, escribamos la segunda consulta para obtener información sobre los empleados de estos departamentos:

12345
SELECT * FROM employees WHERE department IN ( 'Marketing', 'Human Resources', 'Finance', 'Customer Service', 'Legal' )
copy

El resultado de esta consulta será idéntico al que obtuvimos con la primera consulta.

Así que, desglosemos paso a paso lo que estamos haciendo:

  1. La consulta interna recupera los names de los departamentos que necesitamos.
  2. Luego, utilizando una cláusula WHERE, establecemos un cierto criterio que verifica si los departamentos están presentes en la tabla que recuperamos con la consulta interna.
  3. Obtenemos el resultado deseado.

La sintaxis para usar una consulta interna se verá de la siguiente manera:

Pero hay varios puntos importantes a considerar al usar consultas internas:

  1. Resultado Único en Subconsulta: La consulta anidada debe devolver solo una columna, pero también puede estar restringida a un único valor si se usa en una condición de comparación. Esto es particularmente importante para operadores como =, >, <, >=, <=, <>;
  2. Tipos de Datos: Asegúrese de que el tipo de dato de la columna devuelta coincida con el tipo de dato de la columna a la que se aplica la condición para evitar errores de incompatibilidad de tipos;
  3. Optimización: Las consultas anidadas pueden ser ineficientes, especialmente si se ejecutan para cada fila de la consulta principal;
  4. Uso del Operador IN: Las consultas anidadas se utilizan a menudo con el operador IN para verificar la presencia de valores en un subconjunto de datos. Sin embargo, los operadores de comparación (>, <, >=, <=, <>) también pueden utilizarse para condiciones más complejas.

En los siguientes capítulos, practicaremos juntos con consultas internas y también aprenderemos algunas nuevas sutilezas sobre su uso.

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 1
some-alt