Diferença de SQL entre operadores Union, Union All e Union Distinct

Diferenca De Sql Entre Operadores Union Union All E Union Distinct



O SQL nos fornece o operador UNION que nos permite combinar os conjuntos de resultados de duas ou mais instruções SELECT em um único conjunto de resultados. Existem três tipos principais de operadores UNION no SQL: UNION, UNION ALL e UNION DISTINCT.

Este tutorial explora esses três tipos de UNIONS e fornece exemplos reais e práticos de como trabalhar com eles.







OBSERVAÇÃO: Neste exemplo, usaremos o banco de dados Sakila de amostra para fins de demonstração. Certifique-se de tê-lo instalado antes de executar esses comandos. Você pode conferir nosso tutorial sobre isso para saber mais.



Operador SQL UNION

Conforme mencionado, o operador UNION nos permite combinar o conjunto de resultados de duas ou mais instruções select e remover os valores duplicados. A sintaxe do operador UNION é a seguinte:



SELECIONE coluna1, coluna2, ...
DA tabela1
UNIÃO
SELECIONE coluna1, coluna2, ...
DA tabela2;


Na sintaxe do exemplo anterior, usamos as instruções SELECT para recuperar os dados das tabelas especificadas. O operador UNION então combina os dois conjuntos de resultados em um conjunto. Vamos dar um exemplo de como fazer isso usando a tabela de atores definida no banco de dados Sakila.





Considere o seguinte exemplo de consulta que recupera o nome e o sobrenome dos atores da tabela de atores e da tabela do cliente:

SELECT primeiro_nome, sobrenome
DE ator
UNIÃO
SELECT primeiro_nome, sobrenome
DO cliente; SELECT primeiro_nome, sobrenome
DE ator
UNIÃO
SELECT primeiro_nome, sobrenome
DO cliente;


A consulta anterior obtém o nome e o sobrenome das tabelas de ator e cliente e retorna os valores como um único resultado.



Um exemplo de saída é o seguinte:

Operador SQL UNION ALL

Ao contrário do operador UNION que remove os valores duplicados do conjunto de resultados, o operador UNION retorna todas as linhas da tabela incluindo as duplicatas.

A sintaxe é a seguinte:

SELECIONE coluna1, coluna2, ...
DA tabela1
UNIÃO TODOS
SELECIONE coluna1, coluna2, ...
DA tabela2;


O exemplo a seguir seleciona o nome e o sobrenome das tabelas de ator e cliente no banco de dados Sakila:

SELECT primeiro_nome, sobrenome
DE ator
UNIÃO TODOS
SELECT primeiro_nome, sobrenome
DO cliente;


Um exemplo de saída é o seguinte:

Operador SQL UNION DISTINCT

O outro tipo de operador de união é o UNION DISTINCT. Este operador é simplesmente uma duplicata do operador UNION que executa uma ação semelhante.

A sintaxe é a seguinte:

SELECIONE coluna1, coluna2, ...
DA tabela1
UNIÃO DISTINTA
SELECIONE coluna1, coluna2, ...
DA tabela2;


As instruções SELECT recuperam os dados das tabelas especificadas e o operador UNION DISTINCT combina os conjuntos de resultados em um único conjunto de resultados que inclui as linhas exclusivas.

No exemplo do banco de dados Sakila, podemos executar o seguinte comando:

SELECT primeiro_nome, sobrenome
DE ator
UNIÃO DISTINTA
SELECT primeiro_nome, sobrenome
DO cliente;


Isso deve retornar um resultado semelhante ao do operador UNION.

Conclusão

Aprendemos a trabalhar com os vários tipos de UNIONS no SQL. O operador UNION combina o conjunto de resultados de duas ou mais instruções select e remove os registros duplicados. O UNION ALL executa uma ação semelhante, mas inclui todas as linhas duplicadas. Finalmente, o UNION DISTINCT é idêntico a um operador UNION nativo.