Subconsultas en El Lenguaje SQL
Subconsultas en El Lenguaje SQL
Subconsultas en El Lenguaje SQL
INTEGRANTES:
MASABANDA JHENNY
TOAPANTA DIANA
CICLO:
QUINTO
PARALELO:
FECHA:
LATACUNGA ECUADOR
Sintaxis
Tipos De Subconsultas
Las subconsultas se pueden especificar en muchos sitios:
Descripcin
Expresin y operador de comparacin que compara la expresin con
expresin
instruccinSQ
L
En donde:
Comparacin
Es una expresin y un operador de comparacin que compara la expresin con el
resultado de la subconsulta.
Expresin
Es una expresin por la que se busca el conjunto resultante de la subconsulta.
Instruccin sql
Es una instruccin SELECT, que sigue el mismo formato y reglas que cualquier otra
instruccin SELECT. Debe ir entre parntesis.
Se puede utilizar una subconsulta en lugar de una expresin en la lista de campos de una
instruccin SELECT o en una clusula WHERE o HAVING. En una subconsulta, se
utiliza una instruccin SELECT para proporcionar un conjunto de uno o ms valores
especificados para evaluar en la expresin de la clusula WHERE o HAVING.
Se puede utilizar el predicado ANY o SOME, los cuales son sinnimos, para recuperar
registros de la consulta principal, que satisfagan la comparacin con cualquier otro
registr recuperado en la subconsulta. El ejemplo siguiente devuelve todos los
productos cuyo precio unitario es mayor que el de cualquier producto vendido con un
descuento igual o mayor al 25 por ciento.
Los tipos de datos ntext, text y image no estn permitidos en las listas de
seleccin de subconsultas.
Puesto que deben devolver un solo valor, las subconsultas que se especifican con
un operador de comparacin sin modificar (no seguido de la palabra clave ANY o
ALL) no pueden incluir las clusulas GROUP BY y HAVING.
EJEMPLOS
SELECT(SELECT)-FROM-WHERE
Es posible utilizar una subconsulta como una columna dentro de la seleccin.
Supongamos que se termin el periodo de postulaciones y desea obtener una lista de los
estudiantes y cuantas veces fueron aceptados.
EJEMPLO N 1:
EJEMPLO N 2
Se desea saber el promedio de un determinado alumno y su diferencia con el promedio
ms alto del grupo de alumnos. Podra conseguirse averiguando el promedio ms alto de
grupo, y luego, en otra consulta, calcular la diferencia con el del valor del promedio del
alumno en cuestin (en este caso Doris). Esto es posible realizarlo en una sola consulta:
SELECT sname, average, average-(SELECT max (average) FROM
student)
As diferencia
FROM student
Cuya salida ser:
EJEMPLO N 3
Supongamos que se trabaja bajo el contexto del ejemplo 2, pero sin utilizar la funcin
MAX, que retorna slo un valor:
SELECT sname, average, average-(SELECT average FROM student)
As diferencia
FROM student
WHERE sname = Doris;
En cuyo caso la salida corresponder al siguiente error:
EJEMPLO N 4
Supongamos que se desea saber el nombre de cada alumno, su promedio, y su diferencia
respecto al promedio ms bajo del curso:
SELECT sname, average, average-(SELECT min (average) FROM
student)
As diferencia
SELECT-FROM(SELECT)-WHERE
Otro uso que se les da a las subconsultas es en la palabra reservada FROM. En el FROM
de la consulta, es posible utilizar una subconsulta. De todos modos es necesario agregarle
un alias, pues el resultado de la subconsulta no tiene un nombre establecido. En caso de
no hacerlo, aparece el siguiente error:
EJEMPLO N 5
Para demostrar el funcionamiento de la subconsulta dentro del FROM, supongamos que
se desea extraer el id y nombre de cada alumno dentro de la tabla student:
SELECT sid, sname
FROM student;
Cuya salida es: