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
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
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:
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.
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.
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.
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Junção Interna
• Segue um exemplo de junção interna com
count(*)
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.
Prof Carlos Eduardo Dantas – carloseduardodantas@iftm.edu.br
Junção Externa
• Contudo, o Left Join está retornando “1”
para Sadia.
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.
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).

Banco de Dados - Junções Externas e internas

  • 1.
    Fundamentos em Bancosde 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 EduardoDantas – 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 EduardoDantas – 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 EduardoDantas – 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 EduardoDantas – 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 EduardoDantas – 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 EduardoDantas – carloseduardodantas@iftm.edu.br Junção Interna • Segue um exemplo de junção interna com count(*)
  • 8.
    Prof Carlos EduardoDantas – carloseduardodantas@iftm.edu.br Junção Externa • Exemplo Right Join, que neste cenário irá fazer o mesmo do inner join.
  • 9.
    Prof Carlos EduardoDantas – carloseduardodantas@iftm.edu.br Junção Externa • Contudo, o Left Join está retornando “1” para Sadia.
  • 10.
    Prof Carlos EduardoDantas – 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 EduardoDantas – 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).