0Pricing
SQL Academy · Aula

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 B
  • EXCEPT — 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

  1. UNION, INTERSECT, EXCEPT
  2. UNION ALL em comparação com UNION (custo da remoção de duplicatas)
  3. Expressões CASE e consultas de tabela dinâmica
  4. Padrões de tabela cruzada (crosstab() do PostgreSQL)
← Voltar para SQL Academy