En SQL se pueden tomar dos conjuntos de datos (SELECT’s) y hacer operaciones de conjuntos como unión, intersección o resta, para ello se utiliza lo que se conocen como operadores de conjunto y existen varios de ellos. Este es una revisión general de ellos, pero en artículos posteriores se detallará cada uno de ellos.
UNION y UNION ALL
Este operador permite unir o sumar dos conjuntos o SELECT. Por medio de este operador se toman los registros de un SELECT y se le añaden los registros de otro SELECT. En términos generales, la sintáxis es
SELECT número 1
UNION
SELECT número 2
Esta unión se puede hacer de dos tablas diferentes, con la única condición de que el número de campos y tipos de datos sean compatibles entre un SELECT y el otro.
En las operaciones de conjuntos equivale, el ejemplo anterior equivale a
A ∪ B.
Además, se puede hacer una diferenciación entre UNION y un UNION ALL, permitiendo o no duplicados, que además influye en el tiempo o número de registros que regresa cada uno de ellos, pero en general se trata de la unión de conjuntos. Una explicación más detallada se encuentra en un artículo posterior especializado en el UNION y UNION ALL.
INTERSECT
Toma dos consultas de entrada (mismo número de campos y tipos de datos compatibles) y genera una salida con los registros que están en ambas entradas. En las operaciones de conjuntos tradicionales, la intersección de A y B se denota como A ∩ B y se codifica en términos generales como
SELECT número 1
INTERSECT
SELECT número 2
Una explicación más detallada del uso de INTERSECT se puede ver en un artículo posterior.
EXCEPT
Toma dos consultas de entrada y generar una salida con los registros que se encuentren en la primera entrada que no se encuentren en la segunda. Si UNION equivale a una suma de conjuntos, EXCEPT equivaldría a una resta. El términos generales, se escribe como
SELECT número 1
EXCEPT
SELECT número 2
En términos generales se puede decir que EXCEPT =UNION – INTERSECT. Una explicación más detallada del EXCEPT se puede revisar en este artículo.
Cada uno de estos operadores de conjunto tiene sus particularidades como permitir un ORDER BY, que importe o no el orden de los conjuntos de datos o consideraciones de performance, sinónimos; elementos que serán detallados en artículos posteriores.
Resumen de los operadores de conjunto en SQL
Y ligas a artículos donde son explicados con mayor detenimiento: