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:
Precio:
Ejecutemos el siguiente comando:
SELECT id FROM Book UNION SELECT id FROM Price;
El comando devolverá lo siguiente:
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:
Precio:
Ejecute el siguiente comando:
SELECT id FROM Book UNION ALL SELECT id FROM price;
Debería devolver lo siguiente:
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:
Precio2:
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:
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:
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
- Desde la barra de navegación de la izquierda, haga clic en Bases de datos.
- Haga clic en Demostración.
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.
Debería devolver lo siguiente:
Union all
Paso 1) Inicie sesión en su cuenta pgAdmin.
Paso 2)
- En la barra de navegación de la izquierda, haga clic en Bases de datos.
- Haga clic en Demostración.
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.
Debería devolver lo siguiente:
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:
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