União PostgreSQL, União ALL com exemplos

O que é União PostgreSQL?

O operador PostgreSQL UNION é usado para combinar conjuntos de resultados de mais de uma instrução SELECT em um conjunto de resultados. Quaisquer linhas duplicadas dos resultados das instruções SELECT são eliminadas. O operador UNION funciona sob duas condições:

  • As consultas SELECT DEVEM retornar um número semelhante de consultas.
  • Os tipos de dados de todas as colunas correspondentes devem ser compatíveis.

O operador UNION normalmente é usado para combinar dados de tabelas relacionadas que não foram perfeitamente normalizadas.

Sintaxe

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)];

Aqui está uma explicação para os parâmetros acima:

A expressão_1, expressão_2,… expressão_n são os cálculos ou colunas que você precisa recuperar.

As tabelas são as tabelas das quais você precisa recuperar registros.

As condições WHERE são as condições que devem ser atendidas para que os registros sejam recuperados.

Nota: como o operador UNION não retorna duplicatas, o uso de UNION DISTINCT não terá impacto nos resultados.

União PostgreSQL

O operador UNION remove duplicatas. Deixe-nos demonstrar isso.

Temos um banco de dados chamado Demo com o seguintewing mesas:

Livro:

União PostgreSQL

Preço:

União PostgreSQL

Vamos executar o seguintewing comando:

SELECT id
FROM Book
UNION
SELECT id
FROM Price;

O comando retornará o seguintewing:

União PostgreSQL

A coluna id aparece nas tabelas Livro e Preço. No entanto, aparece apenas uma vez no resultado. A razão é que PostgreSQL O operador UNION não retorna duplicatas.

União PostgreSQL Todos

Este operador combina conjuntos de resultados de mais de uma instrução SELECT sem remover duplicatas. O operador exige que cada instrução SELECT tenha um número semelhante de campos em conjuntos de resultados de tipos de dados semelhantes.

Sintaxe:

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)];

Aqui está uma explicação para os parâmetros acima:

A expressão_1, expressão_2,… expressão_n são os cálculos ou colunas que você precisa recuperar.

As tabelas são as tabelas das quais você precisa recuperar registros.

As condições WHERE são as condições que devem ser atendidas para que os registros sejam recuperados.

Nota: Ambas as expressões devem ter um número igual de expressões.

Usaremos o seguintewing mesas:

Livro:

União PostgreSQL Todos

Preço:

União PostgreSQL Todos

Execute o seguintewing comando:

 
SELECT id
FROM Book
UNION ALL
SELECT id
FROM price;

Deve retornar o seguintewing:

União PostgreSQL Todos

As duplicatas não foram removidas.

ORDENAR POR

O operador PostgreSQL UNION pode ser usado junto com a cláusula ORDER BY para ordenar os resultados da consulta. Para demonstrar isso, usaremos o seguintewing mesas:

Preço:

ORDENAR POR

Preço2:

ORDENAR POR

Aqui está o comando que demonstra como usar o operador UNION junto com a cláusula ORDER BY:

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

O comando retornará o seguintewing:

ORDENAR POR

Os registros foram ordenados pela coluna de preço. A cláusula ordena os registros em ordem crescente por padrão. Para ordená-los em ordem decrescente, adicione a cláusula DESC conforme mostrado abaixo:

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

O comando retornará o seguintewing:

ORDENAR POR

Os registros foram ordenados com base na coluna de preço em ordem decrescente.

Quando usar o Union e quando usar o Union todos?

Use o operador UNION quando você tiver várias tabelas com uma estrutura semelhante, mas divididas por um motivo. É bom quando você precisa remover/eliminar registros duplicados.

Use o operador UNION ALL quando não precisar remover/eliminar registros duplicados.

Usando pgAdmin

Agora vamos ver como todas as três ações foram executadas usando o pgAdmin.

Como usar a união PostgreSQL usando pgAdmin

Following é um processo passo a passo sobre como usar o PostgreSQL Union usando o pgAdmin

Para fazer o mesmo por meio do pgAdmin, faça o seguinte:

Passo 1) Entrar
Faça login em sua conta pgAdmin.

Passo 2) Clique em Bancos de Dados

  1. Na barra de navegação à esquerda, clique em Bancos de dados.
  2. Clique em Demonstração.

Use a união PostgreSQL usando pgAdmin

Passo 3) Digite a consulta
Digite a consulta no editor de consultas:

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

Passo 4) Clique no botão Executar.
Em seguida, clique no botão Executar. Como mostra a imagem abaixo.

Use a união PostgreSQL usando pgAdmin

Deve retornar o seguintewing:

Use a união PostgreSQL usando pgAdmin

União tudo

Passo 1) Faça login em sua conta pgAdmin.

Passo 2)

  1. Na barra de navegação à esquerda, clique em Bancos de dados.
  2. Clique em Demonstração.

Use PostgreSQL Union tudo usando pgAdmin

Passo 3) Digite a consulta no editor de consultas:

SELECT id
FROM Book
UNION ALL
SELECT id
FROM price;

Passo 4) Clique no botão Executar.

Use PostgreSQL Union tudo usando pgAdmin

Deve retornar o seguintewing:

Use PostgreSQL Union tudo usando pgAdmin

ORDENAR POR

O operador UNION ALL pode ser combinado com a cláusula ORDER BY para ordenar os resultados no conjunto de resultados. Por exemplo:

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

O comando retornará o seguintewing:

Use PostgreSQL ORDER BY usando pgAdmin

Os resultados foram ordenados.

Resumo

  • O operador UNION do PostgreSQL combina resultados de mais de um Instrução SELECT em um conjunto de resultados.
  • O operador UNION não retorna registros duplicados.
  • Para ordenar os resultados, combine-o com a cláusula ORDER BY.
  • O operador UNION ALL combina resultados de mais de uma instrução SELECT em um conjunto de resultados.
  • O operador UNION ALL não remove duplicatas.

Baixe o banco de dados usado neste tutorial