Tema 5. Las subconsultas (II) |
Las condiciones de selección son las condiciones que pueden aparecer en la cláusula WHERE o HAVING. La mayoría se han visto en el tema 2 pero ahora incluiremos las condiciones que utilizan una subconsulta como operando. En SQL tenemos cuatro nuevas condiciones: |
El test de comparación con subconsulta. Es el equivalente al test de
comparación simple. Se utiliza para comparar un valor
de la fila que se está examinado con un único valor producido
por la subconsulta. La subconsulta debe devolver una única
columna, sino se produce un error. |
|
|
SELECT oficina, ciudad |
Lista las oficinas cuyo objetivo sea superior a la
suma de las ventas de sus empleados. |
El test de comparación cuantificada. Este test es una extensión del test de comparación
y del test de conjunto. Compara el valor
de la expresión con cada uno de los valores
producidos por la subconsulta. La subconsulta debe devolver una única
columna sino se produce un error. |
|
El test ANY. La subconsulta debe devolver una única columna
sino se produce un error. |
SELECT oficina, ciudad |
En este caso la subconsulta devuelve una única
columna con las sumas de las cuotas de los empleados de cada oficina.
|
El test ALL. La subconsulta debe devolver una única columna
sino se produce un error. |
SELECT oficina, ciudad |
En este caso se listan las oficinas cuyo objetivo sea superior a todas las sumas. |
Test de pertenencia a conjunto (IN). Examina si el valor
de la expresión es uno de los valores incluidos
en la lista
de valores producida por la subconsulta.
|
|
SELECT numemp, nombre, oficina |
Con la subconsulta se obtiene la lista de los números
de oficina del este y la consulta principal obtiene los empleados
cuyo número de oficina sea uno de los números de oficina
del este. |
OJO con NOT IN. |
|
SELECT oficina, ciudad |
Obtenemos las oficinas que tienen algún empleado. |
SELECT oficina, ciudad |
Al contrario de lo que podríamos pensar esta consulta NO devuelve las oficinas que no tienen ningún empleado porque la subconsulta devuelve algún NULL ( por los empleados que no están asociados a ninguna oficina). |
SELECT oficina, ciudad |
Así sí. |
El test de existencia EXISTS. Examina si la subconsulta produce alguna fila de resultados.
La sintaxis es la siguiente: |
|
SELECT numemp, nombre, oficina |
Este ejemplo obtiene lo mismo que el ejemplo del test
IN. |
NOTA. Cuando se trabaja con tablas muy voluminosas
el test EXISTS suele dar mejor rendimiento
que el test IN. |
|
Una subconsulta es una sentencia SELECT
que aparece en la lista de selección, o en las cláusulas
WHERE o HAVING
de otra sentencia SELECT. La subconsulta se ejecuta por cada fila de la consulta principal. Dentro de una consulta se puede utilizar una columna del origen de la consulta principal, una referencia externa. Aunque se puedan anidar subconsultas no es aconsejado más de un nivel de anidamiento. La subconsulta sufre una serie de restricciones según el lugar donde se encuentre.
Las condiciones asociadas a las subconsultas son las siguientes: el test de comparación con subconsulta el test ANY el test ALL el test IN el test EXISTS |
|
Pag. 5.2
|
© aulaClic. Todos los derechos reservados.
Free Computer tutorials .
Prohibida la reproducción por cualquier medio.
Junio-2001.aulaClic.com |
Síguenos en: Facebook Sobre aulaClic Política de Cookies
© aulaClic. Todos los derechos reservados. Prohibida la reproducción por cualquier medio.