UNION y UNION ALL son los dos operadores SQL más esenciales que se utilizan en la base de datos para combinar el conjunto de resultados de varias tablas. Estos operadores nos permiten utilizar múltiples consultas SELECT, recuperar los resultados deseados y luego combinarlos en un resultado final. . En este artículo vamos a ver en qué se diferencian entre sí. Antes de hacer una comparación, hablaremos brevemente sobre estos operadores.
¿Qué es un operador de la Unión?
El operador de unión en MySQL nos permite combinar dos o más resultados de múltiples consultas SELECT en un único conjunto de resultados. Tiene una característica predeterminada para eliminar las filas duplicadas de las mesas. Esta sintaxis de operador siempre usa el nombre de la columna en la primera instrucción SELECT como los nombres de las columnas de la salida.
mysql La unión debe seguir estas reglas básicas:
- El número y orden de las columnas debe ser el mismo en todas las consultas.
- La posición de las columnas correspondientes de cada consulta de selección debe tener un tipo de datos compatible.
- El nombre de la columna seleccionada en las diferentes consultas SELECT debe estar en el mismo orden.
- El nombre de la columna de la primera consulta SELECT serán los nombres de las columnas de la salida.
NOTA: Debemos saber que Union y Join son diferentes.
- JOIN combina datos de varias tablas diferentes, mientras que UNION combina datos de varias tablas similares.
- JOIN agrega la salida horizontalmente, mientras que UNION combina el conjunto de resultados verticalmente.
La siguiente representación visual lo explica más claramente:
Para leer más información sobre el operador Union, haga clic aquí.
¿Qué es Unión Todo?
El operador UNION ALL combina dos o más resultados de múltiples consultas SELECT y devuelve todos los registros en un único conjunto de resultados. No elimina las filas duplicadas de la salida de las declaraciones SELECT.
Podemos entenderlo con la siguiente representación visual.
Unión versus Unión Todos los operadores
La siguiente tabla comparativa explica sus principales diferencias de forma rápida:
UNIÓN | UNIÓN TODOS |
---|---|
Combina el conjunto de resultados de varias tablas y devuelve registros distintos en un único conjunto de resultados. | Combina el conjunto de resultados de varias tablas y devuelve todos los registros en un único conjunto de resultados. |
Lo siguiente es lo básico sintaxis del operador de la UNIÓN: SELECCIONE lista_columnas DE la tabla1 UNIÓN SELECCIONE lista_columnas DE tabla2; | Lo siguiente es lo básico sintaxis del operador UNION ALL: SELECCIONE lista_columnas DE la tabla1 UNIÓN TODOS SELECCIONE lista_columnas DE tabla2; |
Tiene una función predeterminada para eliminar las filas duplicadas de la salida. | No tiene ninguna función para eliminar las filas duplicadas de la salida. |
Es el rendimiento es lento porque lleva tiempo encontrar y luego eliminar registros duplicados. | Es el rendimiento es rápido porque no elimina las filas duplicadas. |
La mayoría de los usuarios de bases de datos prefieren utilizar este operador. | La mayoría de los usuarios de bases de datos no prefieren utilizar este operador. |
Unión y unión todos los ejemplos
Entendamos las diferencias entre los operadores Union y Union All a través de un ejemplo. Supongamos que tenemos una tabla llamada ' Alumno ' y ' Estudiante2 ' que contiene los siguientes datos:
Tabla: Estudiante
Tabla: Estudiante2
La siguiente declaración SQL devuelve el nombre distintivo de las ciudades de ambas tablas usando la consulta UNION:
SELECT City FROM student UNION SELECT City FROM student2 ORDER BY City;
Después de ejecutar la declaración anterior, obtendremos el siguiente resultado porque el operador Unión devuelve solo los valores distintos.
Devoluciones de la siguiente declaración SQL el nombre de todas las ciudades, incluidos los duplicados de ambas tablas usando la consulta UNION ALL:
SELECT City FROM student UNION ALL SELECT City FROM student2 ORDER BY City;
Después de ejecutar la declaración anterior, obtendremos el siguiente resultado porque el operador Unión Todo devuelve registros completos sin eliminar valores distintos.