Notizen
Otras SubConsultas
Inhalt der Notizen (1)
Seite 1
Una Subconsulta se denomina también consulta o selección interna, mientras que la instrucción que contiene la subconsulta es conocida como consulta o selección externa.
Aparece siempre encerrada entre paréntesis y tiene la misma sintaxis que una sentencia SELECT normal con alguna limitación:
No puede incluir una cláusula COMPUTE o FOR BROWSE y sólo puede incluir una cláusula ORDER BY cuando se especifica también una cláusula TOP.
Una subconsulta puede anidarse en la cláusula WHERE o HAVING de una instrucción externa SELECT, INSERT, UPDATE o DELETE, o bien en otra subconsulta. Se puede disponer de hasta 32 niveles de anidamiento, aunque el límite varía dependiendo de la memoria disponible y de la complejidad del resto de las expresiones de la consulta. Hay que tener en cuenta que para cada fila de la consulta externa, se calcula la subconsulta, si anidamos varias consultas, el número de veces que se ejecutarán las subconsultas.
Ejemplo
Listar los empleados cuya cuota no supere el importe vendido por el empleado.
SELECT nombre
FROM empleados
WHERE cuota <= (SELECT SUM(importe)
FROM pedidos
WHERE rep = numemp);
Tomando como referencia la base de datos biblioteca
--Obtener la cantidad de estudiantes y el total de años de estudiantes que realizaron prestamos y que tienen como máximo 20 años
Select count(*) as 'N° alumnos menores que edad Promedio', sum(edad) as 'Total de años'
from estudiante
where edad <= (select avg(edad) from estudiante )
Tenemos tres tipos de subconsultas:
Las que devuelven un solo valor, aparecen en la lista de selección de la consulta externa o con un operador de comparación sin modificar.
Las que generan una columna de valores, aparecen con el operador IN o con un operador de comparación modificado con ANY, SOME o ALL.
Las que pueden generar cualquier número de columnas y filas, son utilizadas en pruebas de existencia especificadas con EXISTS.
EJEMPLO
--Mostrar los nombres de los libros prestados a alumnos de la carrera de Medicina e Informática
-- cuya edad máxima fue de 23 años
Select * from libro
where idlibro in(SELECT idlibro FROM prestamo where idlector in (SELECT idlector
FROM estudiante WHERE carrera in('medicina','informatica') AND edad <= 23));
Informationen
- Beschreibung
- Ejemplos de subconsultas usando la base de datos biblioteca
- Erstellt von
- jorge sandoval rivera · Mär 2020
- Aktualisiert
- 27 Mär 2020
- Aufrufe
- 1
- Bewertung