OPERACIONES DE CONJUNTOS.

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


  Cuando realizamos una consulta con UNION internamente se realiza una operacion DISTINCT sobre el conjunto de resultados final. Si queremos obtener todos los valores debemos utiliza UNION ALL.

SELECT Nombre, Apellido1 , Apellido2, NifCif, FxNacimiento
FROM EMPLEADOS
UNION ALL
SELECT Nombre, Apellido1 , Apellido2, NifCif, FxNacimiento
FROM CLIENTES

EXCEPT.

    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.
    El siguiente ejemplo muestra el uso de EXCEPT

SELECT
Nombre, Apellido1 , Apellido2, NifCif, FxNacimiento
FROM EMPLEADOS
EXCEPT
SELECT Nombre, Apellido1 , Apellido2, NifCif, FxNacimiento
FROM CLIENTES
    El uso de EXCEPT, como norma general, es mucho más rápido que utilizar condiciones NOT IN o EXISTS en la clausula WHERE.

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.
    El siguiente ejemplo muestra el uso de INTERSECT.

SELECT Nombre, Apellido1 , Apellido2, NifCif, FxNacimiento
FROM EMPLEADOS
INTERSECT
SELECT Nombre, Apellido1 , Apellido2, NifCif, FxNacimiento
FROM CLIENTES