Diferencia de SQL entre operadores Union, Union All y Union Distinct

Diferencia De Sql Entre Operadores Union Union All Y Union Distinct



SQL nos proporciona el operador UNION que nos permite combinar los conjuntos de resultados de dos o más declaraciones SELECT en un único conjunto de resultados. Hay tres tipos principales de operadores UNION en SQL: UNION, UNION ALL y UNION DISTINCT.

Este tutorial explora estos tres tipos de UNIONES y proporciona ejemplos prácticos y del mundo real de cómo trabajar con ellos.







NOTA: En este ejemplo, usaremos la base de datos de muestra Sakila con fines de demostración. Asegúrese de tenerlo instalado antes de ejecutar estos comandos. Puede consultar nuestro tutorial sobre eso para obtener más información.



Operador SQL UNION

Como se mencionó, el operador UNION nos permite combinar el conjunto de resultados de dos o más declaraciones de selección y eliminar los valores duplicados. La sintaxis del operador UNION es la siguiente:



SELECCIONE columna1, columna2, ...
DESDE la tabla1
UNIÓN
SELECCIONE columna1, columna2, ...
DESDE tabla2;

 
En la sintaxis del ejemplo anterior, usamos las declaraciones SELECT para recuperar los datos de las tablas especificadas. El operador UNION luego combina los dos conjuntos de resultados en un solo conjunto. Tomemos un ejemplo de cómo hacer esto utilizando la tabla de actores que se define en la base de datos de Sakila.





Considere la siguiente consulta de ejemplo que recupera el nombre y el apellido de los actores de la tabla de actores y la tabla de clientes:

SELECCIONE nombre, apellido
DE actor
UNIÓN
SELECCIONE nombre, apellido
Del cliente; SELECCIONE nombre, apellido
DE actor
UNIÓN
SELECCIONE nombre, apellido
Del cliente;

 
La consulta anterior obtiene los nombres y apellidos de las tablas de actores y clientes y devuelve los valores como un único resultado.



Un ejemplo de salida es el siguiente:

Operador SQL UNION ALL

A diferencia del operador UNION que elimina los valores duplicados del conjunto de resultados, el operador UNION devuelve todas las filas de las tablas, incluidos los duplicados.

La sintaxis es la siguiente:

SELECCIONE columna1, columna2, ...
DESDE la tabla1
UNIÓN TODOS
SELECCIONE columna1, columna2, ...
DESDE tabla2;

 
El siguiente ejemplo selecciona el nombre y apellido de las tablas de actor y cliente en la base de datos de Sakila:

SELECCIONE nombre, apellido
DE actor
UNIÓN TODOS
SELECCIONE nombre, apellido
Del cliente;

 
Un ejemplo de salida es el siguiente:

Operador SQL UNION DISTINCT

El otro tipo de operador de unión es el UNION DISTINCT. Este operador es simplemente un duplicado del operador UNION que realiza una acción similar.

La sintaxis es la siguiente:

SELECCIONE columna1, columna2, ...
DESDE la tabla1
UNIÓN DISTINTO
SELECCIONE columna1, columna2, ...
DESDE tabla2;

 
Las instrucciones SELECT recuperan los datos de las tablas especificadas y el operador UNION DISTINCT combina los conjuntos de resultados en un solo conjunto de resultados que incluye las filas únicas.

En el ejemplo de la base de datos Sakila, podemos ejecutar el siguiente comando:

SELECCIONE nombre, apellido
DE actor
UNIÓN DISTINTO
SELECCIONE nombre, apellido
Del cliente;

 
Esto debería devolver un resultado similar al del operador UNION.

Conclusión

Aprendimos a trabajar con los distintos tipos de UNIONS en SQL. El operador UNION combina el conjunto de resultados de dos o más instrucciones de selección y elimina los registros duplicados. UNION ALL realiza una acción similar pero incluye filas duplicadas. Finalmente, UNION DISTINCT es idéntico a un operador UNION nativo.