Una subconsulta es una sentencia SELECT anidada dentro de otra sentencia SELECT que se utiliza para filtrar datos. Por ejemplo, podemos usar una subconsulta para consultar el último alquiler de un cliente mediante la cláusula WHERE. Otras aplicaciones incluyen el test de existencia EXISTS, que comprueba si la subconsulta devuelve filas. SQL Server 2005 también permite operaciones de conjuntos como UNION, EXCEPT e INTERSECT entre consultas.
2. Una subconsulta es una sentencia
SELECT que aparece dentro de otra
sentencia SELECT. Normalmente se
utilizan para filtrar una clausula WHERE o
HAVING con el conjunto de resultados de
la subconsulta, aunque también pueden
utilizarse en la lista de selección.
3. Por ejemplo podríamos consultar el
alquiler último de un cliente.
SELECT
CO_CLIENTE, NOMBRE, MARCA, MODD
ELO FROM ALQUILERES WHERE
CO_CLIENTE = 1 AND
FECHA_ALQUILER = (SELECT
MAX(FECHA_ALQUILER) FROM
ALQUILERES WHERE CO_CLIENTE
= 1)
4. El test de existencia EXISTS.
Examina si la subconsulta produce alguna fila de resultados.
Si la subconsulta contiene filas, el test adopta el valor
verdadero, si la subconsulta no contiene ninguna fila, el test
toma el valor falso, nunca puede tomar el valor nulo.
Cuando se utiliza el test de existencia en la mayoría de los
casos habrá que utilizar una referencia externa. Si no se
utiliza una referencia externa la subconsulta devuelta
siempre será la misma para todas las filas de la consulta
principal y en este caso se seleccionan todas las filas de la
consulta principal (si la subconsulta genera filas) o ninguna
(si la subconsulta no devuelve ninguna fila)
5. El test de existencia EXISTS.
Examina si a subconsulta produce alguna fila
de resultados. Sí la subconsulta contiene
filas, el test adopta el valor verdadero, si la
subconsulta no contiene ninguna fila, el test
toma el valor falso, nunca puede tomar el
valor nulo.
Con este test la subconsulta puede tener
varias columnas, no importa ya que el test se
fija no en los valores devueltos sino en si hay
o no fila en la tabla resultado de la
subconsulta.
6. Operadores de
conjuntos
SQL Server 2005 permite tres tipos de
operaciones con conjuntos:
•UNION, disponible en todas las
versiones de SQL Server.
•EXCEPT, nuevo en SQL Server 2005.
•INTERSECT, nuevo en SQL Server
2005.
Para utilizar operaciones de
conjuntos debemos cumplir una serie
de normas.