   Una subconsulta es una consulta que aparece
    dentro de otra consulta o subconsultas, en la
    lista de selección .
   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.
   SELECT Nombre
          FROM Empleados
                WHERE cuota <= (SELECT SUM(importe)
                                        FROM pedidos
                                  WHERE rep = numemple);
    Subconsulta de una sola fila :




    Consulta principal
                                      ST_CLERK
       Subconsulta
    Subconsultas de varias filas :




    Consulta principal                ST_CLERK
                         devuelve
                                      SA_MAN
       Subconsulta
A.    Devuelve mas de una fila.
B.    Utiliza operadores de comparación de varias filas.




      OPERADOR                       SIGNIFICADO
     IN                    Igual a Cualquier miembro de la lista.

     ANY                   Compara el valor con cada valor devuelto
                           por la subconsulta.

     ALL                   Compara el valor con todos los valores
                           devueltos por la subconsulta.
   La subconsulta SELECT de la instrucción
    INSERT se puede utilizar para agregar valores
    a una tabla de una o más tablas o vistas.
    Además, utilizar una subconsulta SELECT
    permite insertar más de una fila al mismo
    tiempo.
 Los operadores de conjuntos ejecutan operaciones en
  miembros o conjuntos y devuelven un conjunto. Por lo
  general, los operadores de conjuntos se utilizan como
  alternativa a las distintas funciones de conjuntos en
  expresiones.
 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.
   Las consultas a unir deben tener el mismo número
    campos, y además los campos deben ser del mismo
    tipo.
   Sólo puede haber una única clausula ORDER BY al
    final de la sentencia SELECT.
                            UNION
   Devuelve la suma de dos o más conjuntos de
    resultados. El conjunto obtenido como resultado de
    UNION tiene la misma estructura que los conjuntos
    originales.

   El siguiente ejemplo muestra el uso de UNION
SELECT Nombre, Apellido1 , Apellido2, NifCif, FxNacimiento
                    FROM EMPLEADOS
                           UNION
    SELECT Nombre, Apellido1 , Apellido2, NifCif, FxNacimiento
                     FROM CLIENTES


                         EXCEPT
Devuelve la diferencia (resta) de dos o más conjuntos de
resultados. El conjunto obtenido como resultado de
 EXCEPT tiene la misma estructura que los conjuntos
originales.

     Ejemplo
SELECT Nombre, Apellido1 , Apellido2, NifCif, FxNacimiento
                    FROM EMPLEADOS
                           EXCEPT
    SELECT Nombre, Apellido1 , Apellido2, NifCif, FxNacimiento
                     FROM CLIENTES


                      INTERSECT
Devuelve la intersección entre dos o más conjuntos de
  resultados en uno. El conjunto obtenido como
  resultado de INTERSECT tiene la misma estructura
  que los conjuntos originales.

    Ejemplo :
SELECT Nombre, Apellido1 , Apellido2, NifCif, FxNacimiento
                FROM EMPLEADOS
                     INTERSECT
SELECT Nombre, Apellido1 , Apellido2, NifCif, FxNacimiento
                 FROM CLIENTES

Subconsultas

  • 2.
    Una subconsulta es una consulta que aparece dentro de otra consulta o subconsultas, en la lista de selección .  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.
  • 3.
    SELECT Nombre FROM Empleados WHERE cuota <= (SELECT SUM(importe) FROM pedidos WHERE rep = numemple);
  • 4.
    Subconsulta de una sola fila : Consulta principal ST_CLERK Subconsulta
  • 5.
    Subconsultas de varias filas : Consulta principal ST_CLERK devuelve SA_MAN Subconsulta
  • 6.
    A. Devuelve mas de una fila. B. Utiliza operadores de comparación de varias filas. OPERADOR SIGNIFICADO IN Igual a Cualquier miembro de la lista. ANY Compara el valor con cada valor devuelto por la subconsulta. ALL Compara el valor con todos los valores devueltos por la subconsulta.
  • 7.
    La subconsulta SELECT de la instrucción INSERT se puede utilizar para agregar valores a una tabla de una o más tablas o vistas. Además, utilizar una subconsulta SELECT permite insertar más de una fila al mismo tiempo.
  • 8.
     Los operadoresde conjuntos ejecutan operaciones en miembros o conjuntos y devuelven un conjunto. Por lo general, los operadores de conjuntos se utilizan como alternativa a las distintas funciones de conjuntos en expresiones. 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.
  • 9.
    Para utilizar operaciones de conjuntos debemos cumplir una serie de normas.  Las consultas a unir deben tener el mismo número campos, y además los campos deben ser del mismo tipo.  Sólo puede haber una única clausula ORDER BY al final de la sentencia SELECT. UNION  Devuelve la suma de dos o más conjuntos de resultados. El conjunto obtenido como resultado de UNION tiene la misma estructura que los conjuntos originales.  El siguiente ejemplo muestra el uso de UNION
  • 10.
    SELECT Nombre, Apellido1, Apellido2, NifCif, FxNacimiento FROM EMPLEADOS UNION SELECT Nombre, Apellido1 , Apellido2, NifCif, FxNacimiento FROM CLIENTES EXCEPT Devuelve la diferencia (resta) de dos o más conjuntos de resultados. El conjunto obtenido como resultado de EXCEPT tiene la misma estructura que los conjuntos originales.  Ejemplo
  • 11.
    SELECT Nombre, Apellido1, Apellido2, NifCif, FxNacimiento FROM EMPLEADOS EXCEPT SELECT Nombre, Apellido1 , Apellido2, NifCif, FxNacimiento FROM CLIENTES INTERSECT Devuelve la intersección entre dos o más conjuntos de resultados en uno. El conjunto obtenido como resultado de INTERSECT tiene la misma estructura que los conjuntos originales.  Ejemplo :
  • 12.
    SELECT Nombre, Apellido1, Apellido2, NifCif, FxNacimiento FROM EMPLEADOS INTERSECT SELECT Nombre, Apellido1 , Apellido2, NifCif, FxNacimiento FROM CLIENTES