SlideShare uma empresa Scribd logo
1 de 19
Linguagem SQL – Operações com
Conjuntos e Junções
Curso de Sistemas de Informação
Disciplina de Banco de Dados – IF976
Profa. Bernadette Farias Lóscio
bfl@cin.ufpe.br
Slides adaptados de Fernanda Lígia Rodrigues
Operações com Conjuntos
• UNION
– Une as tuplas de duas relações.
– Linhas duplicadas são removidas da tabela
resultante.
– As relações devem ser união compatíveis.
Operações com Conjuntos
• Exemplo
SELECT P.siape FROM Professor P, Departamento D
WHERE D.numero_depto = P.cod_depto
AND D.nome_depto = ‘Sistemas de Informação’
UNION
SELECT P.siape FROM Professor P, Departamento D
WHERE D.numero_depto = P.cod_depto
AND D.nome_depto = ‘Tecnologia da Informação’
Operações com Conjuntos
• UNION ALL
– Une as tuplas de relações (oriundas de consultas).
– Linhas duplicadas são mantidas da tabela
resultante.
– As relações devem ser união compatíveis.
Operações com Conjuntos
• A cláusula INTERSECT tem como objetivo
obter a interseção entre tuplas de duas
relações.
• As tabelas devem ser união compatíveis.
Operações com Conjuntos
• Exemplo
SELECT P.siape FROM Professor P, Ministra M
WHERE P.siape = M.siape
AND M.cod_disciplina = ‘IF973’
INTERSECT
SELECT P.siape FROM Professor P, Ministra M
WHERE P.siape = M.siape
AND M.cod_disciplina = ‘IF992;’
Operações com Conjuntos
• Diferença entre conjuntos.
• Retira de uma relação os elementos que se
repetem em outra relação.
Operações com Conjuntos
• Exemplo
SELECT M.cod_disciplina
FROM Professor P, Ministra M
WHERE P.siape = M.siape AND P.siape = ‘1234’
EXCEPT
SELECT M.cod_disciplina
FROM Professor P, Ministra M
WHERE P.siape = M.siape AND P.siape = ‘1234’;
Selecione o código das disciplinas que são ministradas pelo professor de siape = ‘1234’
e que não são ministradas pelo professor de siape = ‘5678’.
Inner Join x Outer Join
• Em SQL, algumas colunas podem possuir valor nulo em
uma tupla. Nesse caso, SQL considera que o valor é
DESCONHECIDO.
• Portanto, temos três valores lógicos: VERDADEIRO, FALSO e
DESCONHECIDO.
• Nas consultas seleção-projeção-junção somente as
combinações de tuplas que avaliam a expressão lógica
como VERDADEIRA são selecionadas. As junções internas
(inner join) funcionam assim.
• Já as junções externas (outer join) podem retornar uma
tupla mesmo que ela tenha um valor desconhecido (NULO).
Inner join
• É uma junção (junção simples) de duas ou
mais tabelas que retorna somente as tuplas
que satisfazem à condição de junção.
• O valor deve estar nas duas tabelas (tuplas
comuns), se o valor é nulo em alguma delas,
não é retornada.
Inner join
Forma geral:
SELECT <atributos>
FROM <tabela A> INNER JOIN <tabela B>
ON <condição de junção>;
Exemplo:
SELECT P.nome, D.nome
FROM Professor P INNER JOIN Departamento D
ON P.cod_depto = D.numero_depto;
Outer join
• Retorna todas as tuplas de uma tabela e as
tuplas de outra tabela somente se os campos de
junção são iguais (condição de junção é
encontrada).
• Para todas as tuplas de uma das tabelas que não
tenha nenhuma tupla correspondente na outra,
pela condição de junção, é retornado null para
todos os campos da lista do select que sejam
colunas da outra tabela.
Outer join
• Consulta que executa uma outer join das
tabelas A e B e retorna todas as tuplas de A
(tabela da esquerda):
SELECT <atributos>
FROM <tabela A> LEFT [OUTER] JOIN <tabela B>
ON <condição de junção>;
Outer join
• Exemplo
SELECT D.nome, P.nome, P.siape,
FROM Departamento D LEFT OUTER JOIN Professor
P
ON D.numero_depto = P.cod_depto;
Listar o nome de todos os departamentos e os
dados dos professores (nome e siape) que
trabalham no departamento.
Outer join
• Para escrever uma consulta que executa uma
outer join das tabelas A e B e retorna todas as
tuplas de B (tabela da direita) além das tuplas
comuns, utilizamos:
SELECT <atributos>
FROM <tabela A> RIGHT[OUTER] JOIN <tabela B>
ON <condição de junção>;
Outer join
• Exemplo
SELECT M.cod_disciplina, M.periodo, D.nome
FROM Ministra M RIGHT OUTER JOIN Disciplina D
ON M.cod_disciplina = D.cod_disciplina;
Listar o nome o código e o nome das disciplinas que já foram
ministradas, juntamente com o nome das demais disciplinas.
Listar o nome de todas as disciplinas e para aquelas que já foram
ministradas listar o código da disciplina e o período em que foi
ministrada.
Outer join
• Consulta que executa um outer join e retorna
todas as tuplas de A e B, estendidas com nulls
se elas não satisfizerem à condição de junção,
SELECT <atributos>
FROM <tabela A> FULL [OUTER] JOIN <tabela B>
ON <condição de junção>;
Outer join
• Exemplo
SELECT D.nome, P.nome, P.siape,
FROM Departamento D FULL OUTER JOIN
Professor P
ON D.numero_depto = P.cod_depto;
Resumo – Comandos SQL
DDL
Consultas
DML

Mais conteúdo relacionado

Semelhante a Aula06 - SQL (Conjuntos e Juncoes).pptx

Apresentação sobre Excel - Conteúdo básico
Apresentação sobre Excel - Conteúdo básicoApresentação sobre Excel - Conteúdo básico
Apresentação sobre Excel - Conteúdo básico
ssuser906f55
 
Formulas excel para facilitar o dia a dia
Formulas excel para facilitar o dia a diaFormulas excel para facilitar o dia a dia
Formulas excel para facilitar o dia a dia
Marina Krummenauer
 
Tutorial formulas excell
Tutorial formulas excellTutorial formulas excell
Tutorial formulas excell
gusmao2010
 
Aula 01 excel 01
Aula 01 excel 01Aula 01 excel 01
Aula 01 excel 01
Denise A.
 
Formulas excel
Formulas excelFormulas excel
Formulas excel
faby672
 

Semelhante a Aula06 - SQL (Conjuntos e Juncoes).pptx (20)

Formulas excel
Formulas excelFormulas excel
Formulas excel
 
Formulas excel
Formulas excelFormulas excel
Formulas excel
 
Formulas excel
Formulas excelFormulas excel
Formulas excel
 
Formulas excel
Formulas excelFormulas excel
Formulas excel
 
Formulas excel
Formulas excelFormulas excel
Formulas excel
 
Excel Avançado - Aulas
Excel Avançado - AulasExcel Avançado - Aulas
Excel Avançado - Aulas
 
Apresentação sobre Excel - Conteúdo básico
Apresentação sobre Excel - Conteúdo básicoApresentação sobre Excel - Conteúdo básico
Apresentação sobre Excel - Conteúdo básico
 
Um pouco sobre sql
Um pouco sobre sqlUm pouco sobre sql
Um pouco sobre sql
 
Formulas excel para facilitar o dia a dia
Formulas excel para facilitar o dia a diaFormulas excel para facilitar o dia a dia
Formulas excel para facilitar o dia a dia
 
BD I - Aula 14 A - Limitando Conj Dados e Sub Selects
BD I - Aula 14 A - Limitando Conj Dados e Sub SelectsBD I - Aula 14 A - Limitando Conj Dados e Sub Selects
BD I - Aula 14 A - Limitando Conj Dados e Sub Selects
 
Tutorial formulas excell
Tutorial formulas excellTutorial formulas excell
Tutorial formulas excell
 
Aula 01 excel 01
Aula 01 excel 01Aula 01 excel 01
Aula 01 excel 01
 
Apostila excel avançado
Apostila excel avançadoApostila excel avançado
Apostila excel avançado
 
Formulas excel
Formulas excelFormulas excel
Formulas excel
 
Pequenas Aulas De Excel - 05
Pequenas Aulas De Excel - 05Pequenas Aulas De Excel - 05
Pequenas Aulas De Excel - 05
 
BD I - Aula 08 A - Algebra Relacional
BD I - Aula 08 A - Algebra RelacionalBD I - Aula 08 A - Algebra Relacional
BD I - Aula 08 A - Algebra Relacional
 
Banco de dados comandos sql
Banco de dados   comandos sqlBanco de dados   comandos sql
Banco de dados comandos sql
 
Introdução ao MS Office Excel 2.pdf
Introdução ao MS Office Excel 2.pdfIntrodução ao MS Office Excel 2.pdf
Introdução ao MS Office Excel 2.pdf
 
Formulas excel
Formulas excelFormulas excel
Formulas excel
 
Aulas EXCEL
Aulas EXCELAulas EXCEL
Aulas EXCEL
 

Aula06 - SQL (Conjuntos e Juncoes).pptx

  • 1. Linguagem SQL – Operações com Conjuntos e Junções Curso de Sistemas de Informação Disciplina de Banco de Dados – IF976 Profa. Bernadette Farias Lóscio bfl@cin.ufpe.br Slides adaptados de Fernanda Lígia Rodrigues
  • 2. Operações com Conjuntos • UNION – Une as tuplas de duas relações. – Linhas duplicadas são removidas da tabela resultante. – As relações devem ser união compatíveis.
  • 3. Operações com Conjuntos • Exemplo SELECT P.siape FROM Professor P, Departamento D WHERE D.numero_depto = P.cod_depto AND D.nome_depto = ‘Sistemas de Informação’ UNION SELECT P.siape FROM Professor P, Departamento D WHERE D.numero_depto = P.cod_depto AND D.nome_depto = ‘Tecnologia da Informação’
  • 4. Operações com Conjuntos • UNION ALL – Une as tuplas de relações (oriundas de consultas). – Linhas duplicadas são mantidas da tabela resultante. – As relações devem ser união compatíveis.
  • 5. Operações com Conjuntos • A cláusula INTERSECT tem como objetivo obter a interseção entre tuplas de duas relações. • As tabelas devem ser união compatíveis.
  • 6. Operações com Conjuntos • Exemplo SELECT P.siape FROM Professor P, Ministra M WHERE P.siape = M.siape AND M.cod_disciplina = ‘IF973’ INTERSECT SELECT P.siape FROM Professor P, Ministra M WHERE P.siape = M.siape AND M.cod_disciplina = ‘IF992;’
  • 7. Operações com Conjuntos • Diferença entre conjuntos. • Retira de uma relação os elementos que se repetem em outra relação.
  • 8. Operações com Conjuntos • Exemplo SELECT M.cod_disciplina FROM Professor P, Ministra M WHERE P.siape = M.siape AND P.siape = ‘1234’ EXCEPT SELECT M.cod_disciplina FROM Professor P, Ministra M WHERE P.siape = M.siape AND P.siape = ‘1234’; Selecione o código das disciplinas que são ministradas pelo professor de siape = ‘1234’ e que não são ministradas pelo professor de siape = ‘5678’.
  • 9. Inner Join x Outer Join • Em SQL, algumas colunas podem possuir valor nulo em uma tupla. Nesse caso, SQL considera que o valor é DESCONHECIDO. • Portanto, temos três valores lógicos: VERDADEIRO, FALSO e DESCONHECIDO. • Nas consultas seleção-projeção-junção somente as combinações de tuplas que avaliam a expressão lógica como VERDADEIRA são selecionadas. As junções internas (inner join) funcionam assim. • Já as junções externas (outer join) podem retornar uma tupla mesmo que ela tenha um valor desconhecido (NULO).
  • 10. Inner join • É uma junção (junção simples) de duas ou mais tabelas que retorna somente as tuplas que satisfazem à condição de junção. • O valor deve estar nas duas tabelas (tuplas comuns), se o valor é nulo em alguma delas, não é retornada.
  • 11. Inner join Forma geral: SELECT <atributos> FROM <tabela A> INNER JOIN <tabela B> ON <condição de junção>; Exemplo: SELECT P.nome, D.nome FROM Professor P INNER JOIN Departamento D ON P.cod_depto = D.numero_depto;
  • 12. Outer join • Retorna todas as tuplas de uma tabela e as tuplas de outra tabela somente se os campos de junção são iguais (condição de junção é encontrada). • Para todas as tuplas de uma das tabelas que não tenha nenhuma tupla correspondente na outra, pela condição de junção, é retornado null para todos os campos da lista do select que sejam colunas da outra tabela.
  • 13. Outer join • Consulta que executa uma outer join das tabelas A e B e retorna todas as tuplas de A (tabela da esquerda): SELECT <atributos> FROM <tabela A> LEFT [OUTER] JOIN <tabela B> ON <condição de junção>;
  • 14. Outer join • Exemplo SELECT D.nome, P.nome, P.siape, FROM Departamento D LEFT OUTER JOIN Professor P ON D.numero_depto = P.cod_depto; Listar o nome de todos os departamentos e os dados dos professores (nome e siape) que trabalham no departamento.
  • 15. Outer join • Para escrever uma consulta que executa uma outer join das tabelas A e B e retorna todas as tuplas de B (tabela da direita) além das tuplas comuns, utilizamos: SELECT <atributos> FROM <tabela A> RIGHT[OUTER] JOIN <tabela B> ON <condição de junção>;
  • 16. Outer join • Exemplo SELECT M.cod_disciplina, M.periodo, D.nome FROM Ministra M RIGHT OUTER JOIN Disciplina D ON M.cod_disciplina = D.cod_disciplina; Listar o nome o código e o nome das disciplinas que já foram ministradas, juntamente com o nome das demais disciplinas. Listar o nome de todas as disciplinas e para aquelas que já foram ministradas listar o código da disciplina e o período em que foi ministrada.
  • 17. Outer join • Consulta que executa um outer join e retorna todas as tuplas de A e B, estendidas com nulls se elas não satisfizerem à condição de junção, SELECT <atributos> FROM <tabela A> FULL [OUTER] JOIN <tabela B> ON <condição de junção>;
  • 18. Outer join • Exemplo SELECT D.nome, P.nome, P.siape, FROM Departamento D FULL OUTER JOIN Professor P ON D.numero_depto = P.cod_depto;
  • 19. Resumo – Comandos SQL DDL Consultas DML