Buscar

Operadores de Conjunto - SQL UNION, UNION ALL, INTERSECT e EXCEPT

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Operadores de Conjunto
SQL
Profa MsC Josyane Lannes Florenzano de Souza
Operadores de Conjunto
a) Definição
Em algumas situações necessitamos que nossas consultas incluam, em um mesma coluna, dados de mais de uma tabela. Ou seja, desejamos combinar o resultado de duas ou mais consultas em uma. 
Tal situação pode ser resolvida com o uso dos operadores de conjuntos UNION, UNION ALL, INTERSECT e EXCEPT.
b) Diretrizes
As linhas duplicatas são automaticamente excluídas, exceto com UNION ALL;
O cabeçalho que será exibido corresponde a coluna do primeiro comando SELECT;
Todos os comandos SELECT participantes devem ter o mesmo número de colunas;
As colunas participantes e correspondentes devem ter o mesmo tipo de dado;
O apelido (ALIAS) da coluna deve ser definido no primeiro comando SELECT;
A cláusula ORDER BY continua sendo utilizada no final do último comando SELECT. 
c) Exemplos
Todos os exemplos deste item serão elaborados com base nas tabelas: 
alunos (matricula, nome, endereco, cidade, cpf), formandos(matricula, nome, endereco, cidade, cpf) e professores (matricula, nome, endereco, cidade, cpf). 
c.1) Operador UNION
Combina todas as linhas de duas ou mais tabelas participante da operação UNION, eliminando as linhas duplicatas resultantes. 
Ex1: O comando abaixo exibirá o nome de todos os alunos e também o nome de todos os professores, eliminando linhas duplicatas.
SELECT nome FROM alunos
UNION
SELECT nome FROM professores;
c.2) Operador UNION ALL
Combina todas as linhas de duas ou mais tabelas participante da operação UNION, mantendo todas as linhas duplicatas resultantes.
Ex: O comando abaixo exibirá o nome de todos os alunos e também nome de todos os professores, sem eliminar linhas duplicatas.
SELECT nome FROM alunos
UNION ALL
SELECT nome FROM professores;
c.3) Operador INTERSECT
Retorna todas as linhas comuns retornadas por duas ou mais consultas participantes do INTERSECT. 
Ex: O comando abaixo exibirá o nome e o cpf dos alunos que também são professores.
SELECT nome, cpf FROM alunos
INTERSECT
SELECT nome, cpf FROM professores;
c.4) Operador EXCEPT
Retorna as linhas da primeira consulta que não existem na segunda consulta.
Ex: O comando abaixo exibirá o nome e cpf de todos os alunos que não são professores.
SELECT nome, cpf FROM alunos
EXCEPT
SELECT nome, cpf FROM professores;
c.5) Usando o operador conjunto com apelido de coluna e a cláusula ORDER BY
Ex: O comando abaixo exibirá, em ordem alfabética, o nome e cpf de todos os professores que não são alunos.
SELECT nome AS “NOME DOS PROFESSORES”, cpf 
FROM professores
EXCEPT
SELECT nome, cpf FROM alunos
ORDER BY 1;
Exercícios
tabela passageiros (cod_pass, nome_pass, telefone_pass)
Tabela voo (cod_voo; nome_voo, tarifa_voo)
Tabela pilotos (cod_pil, nome_pil, telefone_pil) 
Informe em ordem alfabética, o nome e telefone de todos os passageiros que não são pilotos.
Informe o nome e telefone de todos os passageiros que também são pilotos.
Exercícios - Respostas
tabela passageiros (cod_pass, nome_pass, telefefone_pass)
Tabela voo (cod_voo; nome_voo, tarifa_voo)
Tabela pilotos (cod_pil, nome_pil, telefone_pil) 
Informe em ordem alfabética, o nome e telefone de todos os passageiros que não são pilotos.
SELECT nome_pass AS “NOME DOS PASSAGEIROS”, telefone FROM passageiros
EXCEPT
SELECT nome_pil, telefone_pil FROM pilotos
ORDER BY 1;
Exercícios - Respostas
tabela passageiros (cod_pass, nome_pass, telefefone_pass)
Tabela voo (cod_voo; nome_voo, tarifa_voo)
Tabela pilotos (cod_pil, nome_pil, telefone_pil) 
2. Informe o nome e telefone de todos os passageiros que também são pilotos.
SELECT nome_pass, telefone_pass FROM passageiros
INTERSECT
SELECT nome_pil, telefone_pil FROM pilotos;

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais