O que é: Union (SQL)

O que é Union (SQL)?

A linguagem SQL (Structured Query Language) é amplamente utilizada para manipulação e gerenciamento de bancos de dados relacionais. Dentre as diversas operações disponíveis nessa linguagem, uma das mais importantes é a operação UNION. O UNION é um operador que permite combinar os resultados de duas ou mais consultas em uma única tabela resultante. Neste artigo, vamos explorar em detalhes o que é o UNION no SQL e como ele pode ser utilizado para obter informações de diferentes tabelas de forma eficiente.

Funcionamento do UNION

O UNION é um operador de conjunto que combina os resultados de duas ou mais consultas em uma única tabela resultante. Para que o UNION funcione corretamente, é importante que as consultas envolvidas tenham a mesma quantidade de colunas e que as colunas correspondentes tenham tipos de dados compatíveis. Caso contrário, ocorrerá um erro de sintaxe.

Utilização do UNION

O UNION é utilizado quando desejamos combinar os resultados de duas ou mais consultas em uma única tabela resultante. Essa operação é especialmente útil quando temos informações relacionadas armazenadas em diferentes tabelas e precisamos obter uma visão consolidada desses dados. Por exemplo, suponha que temos uma tabela de clientes e uma tabela de pedidos, e queremos obter uma lista de todos os clientes que fizeram pedidos. Nesse caso, podemos utilizar o UNION para combinar os resultados das consultas que selecionam os clientes e os pedidos.

Sintaxe do UNION

A sintaxe básica do UNION é a seguinte:

SELECT coluna1, coluna2, ... FROM tabela1
UNION
SELECT coluna1, coluna2, ... FROM tabela2
[UNION
SELECT coluna1, coluna2, ... FROM tabela3]
...

Na sintaxe acima, cada SELECT representa uma consulta que seleciona as colunas desejadas de uma tabela específica. O operador UNION é utilizado para combinar os resultados dessas consultas em uma única tabela resultante.

Exemplo de utilização do UNION

Vamos considerar um exemplo prático para entender melhor como o UNION funciona. Suponha que temos duas tabelas: uma tabela chamada “clientes” e outra tabela chamada “fornecedores”. A tabela “clientes” possui as colunas “id”, “nome” e “email”, enquanto a tabela “fornecedores” possui as colunas “id”, “nome” e “telefone”. Queremos obter uma lista de todos os contatos (clientes e fornecedores) em uma única tabela.

A consulta utilizando o UNION ficaria da seguinte forma:

SELECT id, nome, email FROM clientes
UNION
SELECT id, nome, telefone FROM fornecedores;

O resultado dessa consulta seria uma tabela com as colunas “id”, “nome”, “email” e “telefone”, contendo todos os contatos (clientes e fornecedores) da base de dados.

Características do UNION

O UNION possui algumas características importantes que devem ser consideradas ao utilizá-lo:

1. Eliminação de duplicatas: O UNION por padrão remove as linhas duplicadas dos resultados combinados. Caso seja necessário manter as duplicatas, é possível utilizar o operador UNION ALL.

2. Ordenação dos resultados: O UNION não garante a ordenação dos resultados. Para obter os resultados em uma ordem específica, é necessário utilizar a cláusula ORDER BY.

3. Número de colunas: As consultas envolvidas no UNION devem ter o mesmo número de colunas. Caso contrário, ocorrerá um erro de sintaxe.

4. Tipos de dados compatíveis: As colunas correspondentes nas consultas envolvidas no UNION devem ter tipos de dados compatíveis. Caso contrário, ocorrerá um erro de sintaxe.

Conclusão

O UNION é um operador fundamental na linguagem SQL, permitindo combinar os resultados de duas ou mais consultas em uma única tabela resultante. Ele é especialmente útil quando precisamos obter informações de diferentes tabelas de forma eficiente. Ao utilizar o UNION, é importante garantir que as consultas envolvidas tenham o mesmo número de colunas e que as colunas correspondentes tenham tipos de dados compatíveis. Com o conhecimento adequado sobre o funcionamento e a sintaxe do UNION, é possível realizar consultas complexas e obter resultados precisos e consolidados a partir de múltiplas fontes de dados.