O documento discute junções internas e externas em bancos de dados, explicando como junções naturais podem ser usadas para consultar valores totais por fornecedor e como junções externas sempre mostram todos os registros de uma tabela, mesmo sem correspondência na outra tabela. Ele fornece exemplos de junções internas usando count(*) e exemplos mostrando como left joins retornam valores nulos.
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Banco de Dados - Junções Externas e internas
1. Fundamentos em Bancos de
Dados
Junções Internas e
Externas
Tecnologia em Sistemas para Internet
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA
TRIÂNGULO MINEIRO – Campus Avançado Uberlândia
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
2. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Junção natural
• Para consultar o valor total de produtos
por fornecedor, podemos usar a junção
natural
3. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Junção Interna
• A junção natural também pode ser
chamada de Junção Interna, como mostra
a consulta abaixo:
4. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Junção Externa
• Contudo, existem casos onde é desejável
que se mostre todos os fornecedores,
mesmo que não tenha nenhum produto
vinculado a estes. Esse é o caso da junção
externa.
5. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Junção Externa
• No exemplo anterior, não foi encontrado
nenhum produto para o fornecedor Sadia,
por isso mostrou null. A função coalesce
substitui null por qualquer valor desejado.
6. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Junção Externa
• O Left Join obriga que sejam retornados
dados da tabela que fica à esquerda da
junção, mesmo que não existam
correspondentes à direita;
• O Right join faz justamente o oposto, ou
seja, obriga que sejam retornados dados
da tabela que fica à direita da junção,
mesmo que não existam correspondentes
à esquerda.
7. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Junção Interna
• Segue um exemplo de junção interna com
count(*)
8. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Junção Externa
• Exemplo Right Join, que neste cenário irá
fazer o mesmo do inner join.
9. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Junção Externa
• Contudo, o Left Join está retornando “1”
para Sadia.
10. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Valores null em junção
externa
• No exemplo abaixo, observe que ao usar o
Left Join, o sistema está obrigando que o
fornecedor Sadia seja mostrado, mesmo
que não exista nenhum produto para o
mesmo.
11. Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Referências
• DATE, C. J. Introdução a Sistemas de Banco de
Dados. Elsevier, 2003 - 9ª reimpressão;
• ELMASRI, Ramez; NAVATHE, Shamkant B..
Sistema de Banco de Dados. Pearson Addison-
Wesley, 2005 (6ªreimpressão 2010);
• GUIMARÃES, Célio C. Fundamentos de Banco
de Dados: Modelagem, Projeto e Linguagem
SQL. Editora UNICAMP, 2003 (1ª reimpressão
2008).