SUBCONSULTAS
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.
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)
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)
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.
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.

Subconsultas

  • 1.
  • 2.
    Una subconsulta esuna 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íamosconsultar 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 deexistencia 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 deexistencia 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.