Baixe o app para aproveitar ainda mais
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;
Compartilhar