PostgreSQL Unión, Unión TODOS con ejemplos

¿Qué es PostgreSQL ¿Unión?

El sistema PostgreSQL El operador UNION se utiliza para combinar conjuntos de resultados de más de una instrucción SELECT en un único conjunto de resultados. Se eliminan todas las filas duplicadas de los resultados de las instrucciones SELECT. El operador UNION funciona en dos condiciones:

  • Las consultas SELECT DEBEN devolver un número similar de consultas.
  • Los tipos de datos de todas las columnas correspondientes deben ser compatibles.

El operador UNION se utiliza normalmente para combinar datos de tablas relacionadas que no se han normalizado perfectamente.

Sintaxis

SELECT expression_1, expression_2, ... expression_n
FROM tables
[WHERE condition(s)]
UNION
SELECT expression_1, expression_2, ... expression_n
FROM tables
[WHERE condition(s)];

Aquí hay una explicación para los parámetros anteriores:

La expresión_1, expresión_2,… expresión_n son los cálculos o columnas que necesita recuperar.

Las tablas son las tablas de las que necesita recuperar registros.

Las condiciones WHERE son las condiciones que deben cumplirse para que se recuperen los registros.

Nota: dado que el operador UNION no devuelve duplicados, el uso de UNION DISTINCT no tendrá impacto en los resultados.

PostgreSQL Union

El operador UNION elimina los duplicados. Demostremos esto.

Tenemos una base de datos llamada Demo con las siguientes tablas:

Libro:

PostgreSQL Union

Precio:

PostgreSQL Union

Ejecutemos el siguiente comando:

SELECT id
FROM Book
UNION
SELECT id
FROM Price;

El comando devolverá lo siguiente:

PostgreSQL Union

La columna id aparece tanto en la tabla Libro como en la tabla Precio. Sin embargo, aparece sólo una vez en el resultado. La razón es que PostgreSQL El operador UNION no devuelve duplicados.

PostgreSQL Union all

Este operador combina conjuntos de resultados de más de una instrucción SELECT sin eliminar los duplicados. El operador requiere que cada instrucción SELECT tenga una cantidad similar de campos en conjuntos de resultados de tipos de datos similares.

Sintaxis:

SELECT expression_1, expression_2, ... expression_n
FROM tables
[WHERE condition(s)]
UNION ALL
SELECT expression_1, expression_2, ... expression_n
FROM tables
[WHERE condition(s)];

Aquí hay una explicación para los parámetros anteriores:

La expresión_1, expresión_2,… expresión_n son los cálculos o columnas que necesita recuperar.

Las tablas son las tablas de las que necesita recuperar registros.

Las condiciones WHERE son las condiciones que deben cumplirse para que se recuperen los registros.

Nota: Ambas expresiones deben tener el mismo número de expresiones.

Utilizaremos las siguientes tablas:

Libro:

PostgreSQL Union all

Precio:

PostgreSQL Union all

Ejecute el siguiente comando:

 
SELECT id
FROM Book
UNION ALL
SELECT id
FROM price;

Debería devolver lo siguiente:

PostgreSQL Union all

Los duplicados no han sido eliminados.

ORDEN POR

El sistema PostgreSQL El operador UNION se puede utilizar junto con la cláusula ORDER BY para ordenar los resultados de la consulta. Para demostrarlo, utilizaremos las siguientes tablas:

Precio:

ORDEN POR

Precio2:

ORDEN POR

Aquí está el comando que demuestra cómo utilizar el operador UNION junto con la cláusula ORDER BY:

SELECT *
FROM Price
UNION
SELECT *
FROM Price2
ORDER BY price;

El comando devolverá lo siguiente:

ORDEN POR

Los registros fueron ordenados por la columna de precio. La cláusula ordena los registros en orden ascendente de forma predeterminada. Para ordenarlos en orden descendente, agregue la cláusula DESC como se muestra a continuación:

SELECT *
FROM Price
UNION
SELECT *
FROM Price2
ORDER BY price DESC;

El comando devolverá lo siguiente:

ORDEN POR

Los registros se han ordenado según la columna de precio en orden descendente.

¿Cuándo usar Union y cuándo usar Union All?

Utilice el operador UNION cuando tenga varias tablas con una estructura similar pero que estén divididas por algún motivo. Es útil cuando necesita eliminar registros duplicados.

Utilice el operador UNION ALL cuando no necesite eliminar registros duplicados.

Usando pgAdmin

Ahora veamos cómo se realizaron las tres acciones usando pgAdmin.

Instrucciones de uso PostgreSQL Unión usando pgAdmin

A continuación se muestra el proceso paso a paso sobre cómo utilizar PostgreSQL Unión usando pgAdmin

Para lograr lo mismo a través de pgAdmin, haga esto:

Paso 1) Iniciar sesión
Inicie sesión en su cuenta pgAdmin.

Paso 2) Haga clic en Bases de datos

  1. Desde la barra de navegación de la izquierda, haga clic en Bases de datos.
  2. Haga clic en Demostración.

Use PostgreSQL Unión usando pgAdmin

Paso 3) Escribe la consulta
Escriba la consulta en el editor de consultas:

SELECT *
FROM Price
UNION
SELECT *
FROM Price2
ORDER BY price DESC;

Paso 4) Haga clic en el botón Ejecutar.
A continuación, haga clic en el botón Ejecutar. Como se muestra en la imagen de abajo.

Use PostgreSQL Unión usando pgAdmin

Debería devolver lo siguiente:

Use PostgreSQL Unión usando pgAdmin

Union all

Paso 1) Inicie sesión en su cuenta pgAdmin.

Paso 2)

  1. En la barra de navegación de la izquierda, haga clic en Bases de datos.
  2. Haga clic en Demostración.

Use PostgreSQL Unión todo usando pgAdmin

Paso 3) Escriba la consulta en el editor de consultas:

SELECT id
FROM Book
UNION ALL
SELECT id
FROM price;

Paso 4) Haga clic en el botón Ejecutar.

Use PostgreSQL Unión todo usando pgAdmin

Debería devolver lo siguiente:

Use PostgreSQL Unión todo usando pgAdmin

ORDEN POR

El operador UNION ALL se puede combinar con la cláusula ORDER BY para ordenar los resultados en el conjunto de resultados. Por ejemplo:

SELECT id
FROM Book
UNION ALL
SELECT id
FROM price
ORDER BY id;

El comando devolverá lo siguiente:

Use PostgreSQL ORDENAR USANDO pgAdmin

Los resultados han sido ordenados.

Resumen

  • El sistema PostgreSQL El operador UNION combina resultados de más de uno Instrucción SELECT en un conjunto de resultados.
  • El operador UNION no devuelve registros duplicados.
  • Para ordenar los resultados, combínelo con la cláusula ORDER BY.
  • El operador UNION ALL combina resultados de más de una declaración SELECT en un conjunto de resultados.
  • El operador UNION ALL no elimina duplicados.

Descargue la Base de Datos utilizada en este Tutorial