Cláusulas UNION e UNION ALL
Se você já precisou combinar dados de duas ou mais consultas SQL, as cláusulas UNION e UNION ALL são exatamente o que você precisa. Elas permitem juntar os resultados de várias consultas em uma única lista de forma eficiente, mas com algumas diferenças importantes entre elas. Vamos entender como cada uma funciona e qual usar em diferentes cenários!
O que é a cláusula UNION?
A cláusula UNION combina os resultados de duas ou mais consultas SQL e elimina automaticamente os valores duplicados. Isso é útil quando você quer garantir que a saída não contenha registros repetidos.
Sintaxe básica:
SELECT coluna1, coluna2 FROM tabela1
UNION
SELECT coluna1, coluna2 FROM tabela2;
As consultas devem ter o mesmo número de colunas e tipos de dados compatíveis para que o UNION funcione.
A ordem das colunas também precisa ser a mesma em todas as consultas.
2. Exemplo de UNION
Imagine que você tenha duas tabelas, clientes_online
e clientes_presenciais
, e queira criar uma lista combinada de todos os clientes.
SELECT nome, email FROM clientes_online
UNION
SELECT nome, email FROM clientes_presenciais;
Aqui, o resultado mostrará uma lista de nomes e e-mails de clientes, mas se um cliente estiver nas duas tabelas, ele será listado apenas uma vez, já que a cláusula UNION elimina duplicatas.
3. O que é a cláusula UNION ALL?
A cláusula UNION ALL também combina os resultados de múltiplas consultas, mas não elimina os registros duplicados. Ou seja, todos os resultados serão mantidos, mesmo que apareçam em ambas as consultas.
Sintaxe básica:
SELECT coluna1, coluna2 FROM tabela1
UNION ALL
SELECT coluna1, coluna2 FROM tabela2;
4. Exemplo de UNION ALL
Agora, usando as mesmas tabelas de clientes, você quer ver todos os registros, inclusive se um cliente estiver nas duas tabelas.
SELECT nome, email FROM clientes_online
UNION ALL
SELECT nome, email FROM clientes_presenciais;
Dessa vez, se o mesmo cliente aparecer nas duas tabelas, ele será listado duas vezes, já que o UNION ALL mantém duplicatas.
5. Diferenças chave entre UNION e UNION ALL
- UNION: Remove duplicatas e ordena os resultados de forma implícita, o que pode resultar em consultas um pouco mais lentas;
- UNION ALL: Mantém duplicatas e não ordena os resultados, geralmente sendo mais rápido do que o UNION.
6. Quando usar UNION e UNION ALL?
- Use UNION quando você precisa combinar resultados e garantir que não haja registros duplicados;
- Use UNION ALL quando você quer todos os resultados sem se preocupar com duplicatas (e precisa de um desempenho mais rápido).
Resumo rápido:
- UNION: Combina e remove duplicatas.
- UNION ALL: Combina e mantém duplicatas.
Agora que você sabe a diferença entre UNION e UNION ALL, pode combinar consultas com mais eficiência e controlar a forma como os resultados são exibidos!
Domine os principais comandos, Operadores, Manipulação de dados, Funções, Drop e Uploads, Query, SubQuerys, Views, Segurança e muito mais!
O acesso ao nosso curso é vitalício e com suporte exclusivo.
CLIQUE NA IMAGEM ABAIXO PARA MAIS DETALHES:
Dúvidas ou sugestões sobre as cláusulas UNION e UNION ALL? Deixem nos comentários! Para mais dicas, acesse o nosso canal no YouTube:
https://youtube.com/criandobits
Sobre o Autor
0 Comentários