UNION, INTERSECT, EXCEPT
Combine conjuntos de resultados compatíveis com UNION, encontre linhas comuns com INTERSECT e encontre a diferença com EXCEPT.
UNION, INTERSECT, EXCEPT é uma aula grátis de SQL Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de SQL Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de SQL Academy inclui 4 aulas no total.
Visão Geral das Operações de Conjuntos
Três operadores de conjuntos combinam conjuntos de resultados linha a linha:
UNION— linhas em A OR B (sem duplicatas)INTERSECT— linhas em A AND BEXCEPT— linhas em A, mas NOT em B
UNION
Combine dois conjuntos de resultados, removendo duplicatas:
SELECT email FROM users
UNION
SELECT email FROM newsletter_subscribers;Compatibilidade das Colunas
Ambas as consultas devem ter o mesmo número de colunas e tipos compatíveis:
-- OK:
SELECT email FROM users UNION SELECT email FROM customers;
-- ERROR — different column count:
SELECT email FROM users UNION SELECT email, name FROM customers;INTERSECT
Linhas que aparecem em ambas as consultas:
SELECT product_id FROM orders WHERE user_id = 1
INTERSECT
SELECT product_id FROM orders WHERE user_id = 2;
-- Products bought by BOTH users.EXCEPT
Linhas na primeira consulta, mas não na segunda:
SELECT product_id FROM products
EXCEPT
SELECT product_id FROM order_items;
-- Products never ordered.ORDER BY com Operadores de Conjuntos
ORDER BY se aplica a todo o resultado combinado. Coloque-o no final:
SELECT email FROM users
UNION
SELECT email FROM customers
ORDER BY email;Operadores de Conjuntos e NULLs
Para operações de conjuntos, dois NULLs são tratados como iguais — UNION elimina duplicatas, INTERSECT faz a correspondência entre eles. (Diferente de NULL = NULL em WHERE.)
Operadores de Conjuntos em Subconsultas
Coloque as subconsultas entre parênteses para maior clareza e para combiná-las com LIMIT:
(SELECT id FROM users ORDER BY created_at DESC LIMIT 10)
UNION
(SELECT id FROM users ORDER BY total DESC LIMIT 10);Precedência dos Operadores
INTERSECT tem precedência maior que UNION/EXCEPT. Use parênteses:
SELECT id FROM a
UNION
SELECT id FROM b
INTERSECT
SELECT id FROM c;
-- means: a UNION (b INTERSECT c)
-- Use parens to force order:
(SELECT id FROM a UNION SELECT id FROM b) INTERSECT SELECT id FROM c;Desempenho
UNION ordena para eliminar duplicatas. INTERSECT e EXCEPT fazem um trabalho semelhante. Para conjuntos grandes, prefira padrões com JOIN/EXISTS e use operações de conjuntos somente quando a semântica se encaixar claramente.
SQL Padrão vs Particularidades dos Fornecedores
Os três existem no PostgreSQL. MySQL só adicionou INTERSECT e EXCEPT na versão 8.0.31; versões mais antigas simulam essas operações com JOIN/NOT IN.
Recapitulação
Operadores de conjuntos expressam OR/AND/MINUS sobre linhas.
- UNION — combina e elimina duplicatas
- INTERSECT — linhas comuns
- EXCEPT — A menos B
Verificação rápida
Qual operador de conjuntos retorna "linhas em A que NOT estão em B"?
Perguntas Frequentes
A aula “UNION, INTERSECT, EXCEPT” é grátis?
Sim — o texto completo de “UNION, INTERSECT, EXCEPT” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de SQL Academy, atualize para CoddyKit PRO. O curso de SQL Academy inclui 4 aulas no total.
O que vou aprender em “UNION, INTERSECT, EXCEPT”?
Combine conjuntos de resultados compatíveis com UNION, encontre linhas comuns com INTERSECT e encontre a diferença com EXCEPT. Você pratica SQL Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar SQL Academy?
Nenhuma experiência prévia é necessária. SQL Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “UNION, INTERSECT, EXCEPT”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de SQL Academy?
Sim. Cada aula de SQL Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- UNION, INTERSECT, EXCEPT
- UNION ALL em comparação com UNION (custo da remoção de duplicatas)
- Expressões CASE e consultas de tabela dinâmica
- Padrões de tabela cruzada (crosstab() do PostgreSQL)