SlideShare uma empresa Scribd logo
Bases de dados: SQL Joins, especialização/
generalização
Carlos Santos
LabMM 4 - NTC - DeCA - UA
Aula 07, 07-03-2013
E como obter dados resultantes de várias tabelas?

Os processos de combinar dados de várias tabelas numa query são
suportados pelas relações (JOINS) existentes entre elas.
  • exemplo: “listar todos os empréstimos indicando o nome do amigo”




                         amigos                                            empres&mos

   id_amigo           nome               telefone   id_empres&mo   data_empres&mo data_devolucao         id_amigo

      1         José	
  Mourinho        916545955        1           2010-­‐02-­‐23     2010-­‐02-­‐25      1
      2            Jorge	
  Jesus       234545955        2           2010-­‐04-­‐11     2010-­‐04-­‐18
      3       Domingos	
  Paciência     234897897        3           2010-­‐03-­‐13     2010-­‐03-­‐19      1
      4           Vítor	
  Pereira      923435566        4           2010-­‐05-­‐21     2010-­‐05-­‐23      4
      5        André	
  Villas-­‐Boas   934975766        5           2010-­‐06-­‐25     2010-­‐06-­‐29
Joins
                       amigos                                                                         empres&mos

 id_amigo           nome                         telefone                   id_empres&mo    data_empres&mo data_devolucao           id_amigo

    1         José	
  Mourinho                  916545955                        1             2010-­‐02-­‐23      2010-­‐02-­‐25      1
    2            Jorge	
  Jesus                 234545955                        2             2010-­‐04-­‐11      2010-­‐04-­‐18
    3       Domingos	
  Paciência               234897897                        3             2010-­‐03-­‐13      2010-­‐03-­‐19      1
    4           Vítor	
  Pereira                923435566                        4             2010-­‐05-­‐21      2010-­‐05-­‐23      4
    5        André	
  Villas-­‐Boas             934975766                        5             2010-­‐06-­‐25      2010-­‐06-­‐29




                            amigos	
  sem	
                 amigos	
  com            emprés&mos	
  
                            emprés&mos                      emprés&mos                sem	
  amigos
                            registos                                                   registos
                     não	
  relacionados                       registos         não	
  relacionados
                                                            relacionados
INNER JOIN (standard/exclusivo/natural)

Num join natural, um INNER JOIN, os dados resultantes de uma query são
apenas aqueles que podem ser relacionados entre as duas tabelas.

  • SELECT nome_coluna(s)
    FROM nome_tabela1
    INNER JOIN nome_tabela2
    ON nome_tabela1.nome_coluna=nome_tabela2.nome_coluna
    ...;

A ter em atenção:
  • os campos mencionados na condição do join são a PK e FK que
    estabelecem a relação entre as duas tabelas
  • os dados da tabela “nome_tabela1” que não estão relacionados com
    dados da tabela “nome_tabela2” não são retornados na query
  • o inverso da última afirmação também é verdade
INNER JOIN

Exemplo: Selecionar todos os Amigos com Empréstimos




  • SELECT MeusCDs.amigos.nome, MeusCDs.emprestimos.id_emprestimo
    FROM MeusCDs.amigos
    INNER JOIN MeusCDs.emprestimos
    ON MeusCDs.amigos.id_amigo = MeusCDs.emprestimos.ref_id_amigos;


  • SELECT amigos.nome, emprestimos.id_emprestimo
    FROM amigos
    INNER JOIN emprestimos
    ON amigos.id_amigo = emprestimos.ref_id_amigos;
INNER JOIN

Exemplo: Selecionar todos os Amigos com Empréstimos

                                                      ATENÇÃO: as chaves
                                                      têm nomes diferentes
                                                       do modelo do slide
                                                            anterior!




  • SELECT amigos.nome, emprestimos.id_emprestimo
    FROM amigos
    INNER JOIN emprestimos
    ON amigos.id_amigo = emprestimos.id_amigo;
OUTER JOIN (inclusivos)

Os OUTER JOINS permitem obter os registos relacionados e os não
relacionados. Podem ser do tipo LEFT ou RIGHT, de acordo com o sentido
do JOIN.

  • LEFT JOIN Mostra todos os registos relacionados
    (Amigos com Empréstimos)
    +
    Registos não relacionados da tabela esquerda (tabela de partida): amigos
    (Amigos sem Empréstimos)


  • RIGHT JOIN Mostra todos os registos relacionados
    (Amigos com Empréstimos)
    +
    Registos não relacionados da tabela direita (tabela de chegada):
    emprestimos (Empréstimos sem Amigos)
LEFT OUTER JOIN

Exemplo: Seleccionar todos os amigos com empréstimos e todos os
amigos sem empréstimos




  • SELECT amigos.nome, emprestimos.id_emprestimo
    FROM amigos
    LEFT JOIN emprestimos
    ON amigos.id_amigo = emprestimos.id_amigo;
JOINS: exemplo 2

Considere-se um stand automóvel onde cada vendedor é responsável pela
venda de vários automóveis. No entanto, num dado momento, poderão
existir: vendedores sem automóveis atribuídos e automóveis sem
vendedor atribuído.
JOINS: exemplo 2

Selecionar todos os vendedores com carros atribuídos




  • SELECT vendedores.Nome, automoveis.Marca, automoveis.Modelo
    FROM vendedores
    INNER JOIN automoveis
    ON vendedores.idVENDEDORES = automoveis.VENDEDORES_idVENDEDORES
JOINS: exemplo 2

Selecionar todos os vendedores com e sem carros atribuídos




  • SELECT vendedores.Nome, automoveis.Marca, automoveis.Modelo
    FROM vendedores
    LEFT JOIN automoveis
    ON vendedores.idVENDEDORES =
    automoveis.VENDEDORES_idVENDEDORES
JOINS: exemplo 2

Na tabela automóveis foram adicionados 2 novos registos (2 novos
automóveis) aos quais ainda não foi atribuído um vendedor.
Selecionar todos os vendedores com carros atribuídos e os carros sem
vendedor atribuído


  • SELECT vendedores.Nome, automoveis.Marca, automoveis.Modelo
    FROM vendedores
    RIGHT JOIN automoveis
    ON vendedores.idVENDEDORES =
    automoveis.VENDEDORES_idVENDEDORES
JOINS: FULL JOIN no MySQL

Selecionar todos os vendedores com carros atribuídos e sem carros
atribuídos e todos os carros atribuídos e carros sem vendedor atribuído
  • SELECT vendedores.Nome, automoveis.Marca, automoveis.Modelo
    FROM vendedores
    LEFT JOIN automoveis
    ON vendedores.idVENDEDORES = automoveis.VENDEDORES_idVENDEDORES
    UNION
    SELECT vendedores.Nome, automoveis.Marca, automoveis.Modelo
    FROM vendedores
    RIGHT JOIN automoveis
    ON vendedores.idVENDEDORES = automoveis.VENDEDORES_idVENDEDORES
JOINS: FULL JOIN no MySQL

Selecionar todos os vendedores com carros atribuídos e sem carros
atribuídos e todos os carros atribuídos e carros sem vendedor atribuído
Especialização/Generalização

Numa biblioteca pretende-se catalogar os vários tipo de publicações
(livros/monografias) e (revistas/periódicos) com um sistema de
numeração único
                        Tabela de generalização




                       Tabelas de especialização
Especialização/Generalização

As publicações são uma generalização dos conceitos monografias e
periódicos
  • A tabela PUBLICACOES armazena as características comuns a todas as
    publicações

As monografias e os periódicos são especializações do conceito
publicações
  • As tabelas MONOGRAFIAS e PERIODICOS armazenam as características
    específicas (especiais) de cada tipo de publicação

As monografias e periódicos “herdam” todas as características comuns
definidas em publicações

Mais conteúdo relacionado

Destaque

Sql junções
Sql junçõesSql junções
Sql junções
Reuel Lopes
 
HD-Disco Rigído
HD-Disco RigídoHD-Disco Rigído
HD-Disco Rigído
elliando dias
 
12 SQL - Junções / Join
12 SQL - Junções / Join12 SQL - Junções / Join
12 SQL - Junções / Join
Centro Paula Souza
 
Aulas 10 e 11 - Álgebra de Boole
Aulas 10 e 11 - Álgebra de BooleAulas 10 e 11 - Álgebra de Boole
Aulas 10 e 11 - Álgebra de Boole
Jocelma Rios
 
Unidades
UnidadesUnidades
Arquitetura de-computadores
Arquitetura de-computadoresArquitetura de-computadores
Arquitetura de-computadores
Pimentel
 
Sistemas de numeração
Sistemas de numeraçãoSistemas de numeração
Sistemas de numeração
Sérgio Souza Costa
 
Introdução à Informática (Módulo 1)
Introdução à Informática (Módulo 1)Introdução à Informática (Módulo 1)
Introdução à Informática (Módulo 1)
marconesilfer
 

Destaque (8)

Sql junções
Sql junçõesSql junções
Sql junções
 
HD-Disco Rigído
HD-Disco RigídoHD-Disco Rigído
HD-Disco Rigído
 
12 SQL - Junções / Join
12 SQL - Junções / Join12 SQL - Junções / Join
12 SQL - Junções / Join
 
Aulas 10 e 11 - Álgebra de Boole
Aulas 10 e 11 - Álgebra de BooleAulas 10 e 11 - Álgebra de Boole
Aulas 10 e 11 - Álgebra de Boole
 
Unidades
UnidadesUnidades
Unidades
 
Arquitetura de-computadores
Arquitetura de-computadoresArquitetura de-computadores
Arquitetura de-computadores
 
Sistemas de numeração
Sistemas de numeraçãoSistemas de numeração
Sistemas de numeração
 
Introdução à Informática (Módulo 1)
Introdução à Informática (Módulo 1)Introdução à Informática (Módulo 1)
Introdução à Informática (Módulo 1)
 

Mais de Carlos Santos

Is AI the Spice of our future?
Is AI the Spice of our future?Is AI the Spice of our future?
Is AI the Spice of our future?
Carlos Santos
 
Mentoria entre pares de estudantes para estudantes
Mentoria entre pares de estudantes para estudantesMentoria entre pares de estudantes para estudantes
Mentoria entre pares de estudantes para estudantes
Carlos Santos
 
1º Encontro Científico TCEdu
1º Encontro Científico TCEdu1º Encontro Científico TCEdu
1º Encontro Científico TCEdu
Carlos Santos
 
Tecnologias da Comunicação em Educação 2018: Aula inicial
Tecnologias da Comunicação em Educação 2018: Aula inicialTecnologias da Comunicação em Educação 2018: Aula inicial
Tecnologias da Comunicação em Educação 2018: Aula inicial
Carlos Santos
 
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunosAVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
Carlos Santos
 
AVILA Crew – Uma experiência de tutoria de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunosAVILA Crew – Uma experiência de tutoria de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunos
Carlos Santos
 
chmod 777 education
chmod 777 educationchmod 777 education
chmod 777 education
Carlos Santos
 
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
Carlos Santos
 
Tecnologias da Comunicação em Educação: trabalho prático
Tecnologias da Comunicação em Educação: trabalho práticoTecnologias da Comunicação em Educação: trabalho prático
Tecnologias da Comunicação em Educação: trabalho prático
Carlos Santos
 
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
Carlos Santos
 
chmod 777 education
chmod 777 educationchmod 777 education
chmod 777 education
Carlos Santos
 
SAPO Campus towards a
 Smart Learning Environment
SAPO Campus towards a
 Smart Learning EnvironmentSAPO Campus towards a
 Smart Learning Environment
SAPO Campus towards a
 Smart Learning Environment
Carlos Santos
 
Repensar a tecnologia em contexto educativo: o caso do SAPO Campus
Repensar a tecnologia em contexto educativo: o caso do SAPO CampusRepensar a tecnologia em contexto educativo: o caso do SAPO Campus
Repensar a tecnologia em contexto educativo: o caso do SAPO Campus
Carlos Santos
 
A technological approach to Open and Social Learning: 
the SAPO Campus project
A technological approach to Open and Social Learning: 
the SAPO Campus projectA technological approach to Open and Social Learning: 
the SAPO Campus project
A technological approach to Open and Social Learning: 
the SAPO Campus project
Carlos Santos
 
SAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativoSAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativo
Carlos Santos
 
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCARepensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
Carlos Santos
 
T20_LM3: APIs e Scoreoid
T20_LM3: APIs e ScoreoidT20_LM3: APIs e Scoreoid
T20_LM3: APIs e Scoreoid
Carlos Santos
 
T19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificaçãoT19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificação
Carlos Santos
 
T18_LM3: Ajax
T18_LM3: AjaxT18_LM3: Ajax
T18_LM3: Ajax
Carlos Santos
 
T17_LM3: Erros/Debug (2013-2014)
T17_LM3: Erros/Debug (2013-2014)T17_LM3: Erros/Debug (2013-2014)
T17_LM3: Erros/Debug (2013-2014)
Carlos Santos
 

Mais de Carlos Santos (20)

Is AI the Spice of our future?
Is AI the Spice of our future?Is AI the Spice of our future?
Is AI the Spice of our future?
 
Mentoria entre pares de estudantes para estudantes
Mentoria entre pares de estudantes para estudantesMentoria entre pares de estudantes para estudantes
Mentoria entre pares de estudantes para estudantes
 
1º Encontro Científico TCEdu
1º Encontro Científico TCEdu1º Encontro Científico TCEdu
1º Encontro Científico TCEdu
 
Tecnologias da Comunicação em Educação 2018: Aula inicial
Tecnologias da Comunicação em Educação 2018: Aula inicialTecnologias da Comunicação em Educação 2018: Aula inicial
Tecnologias da Comunicação em Educação 2018: Aula inicial
 
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunosAVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
AVILA Crew - Uma experiência de tutoria (com jogos) de alunos para alunos
 
AVILA Crew – Uma experiência de tutoria de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunosAVILA Crew – Uma experiência de tutoria de alunos para alunos
AVILA Crew – Uma experiência de tutoria de alunos para alunos
 
chmod 777 education
chmod 777 educationchmod 777 education
chmod 777 education
 
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
Mestrado em Comunicação Multimédia da Universidade de Aveiro - Sessão de acol...
 
Tecnologias da Comunicação em Educação: trabalho prático
Tecnologias da Comunicação em Educação: trabalho práticoTecnologias da Comunicação em Educação: trabalho prático
Tecnologias da Comunicação em Educação: trabalho prático
 
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
Sessão de acolhimento do MCMM da Universidade de Aveiro (2016/2017)
 
chmod 777 education
chmod 777 educationchmod 777 education
chmod 777 education
 
SAPO Campus towards a
 Smart Learning Environment
SAPO Campus towards a
 Smart Learning EnvironmentSAPO Campus towards a
 Smart Learning Environment
SAPO Campus towards a
 Smart Learning Environment
 
Repensar a tecnologia em contexto educativo: o caso do SAPO Campus
Repensar a tecnologia em contexto educativo: o caso do SAPO CampusRepensar a tecnologia em contexto educativo: o caso do SAPO Campus
Repensar a tecnologia em contexto educativo: o caso do SAPO Campus
 
A technological approach to Open and Social Learning: 
the SAPO Campus project
A technological approach to Open and Social Learning: 
the SAPO Campus projectA technological approach to Open and Social Learning: 
the SAPO Campus project
A technological approach to Open and Social Learning: 
the SAPO Campus project
 
SAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativoSAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativo
 
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCARepensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
Repensar a tecnologia em contextos educativos: o SAPO Campus no DeCA
 
T20_LM3: APIs e Scoreoid
T20_LM3: APIs e ScoreoidT20_LM3: APIs e Scoreoid
T20_LM3: APIs e Scoreoid
 
T19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificaçãoT19_LM3: Projeto final e documentação de planificação
T19_LM3: Projeto final e documentação de planificação
 
T18_LM3: Ajax
T18_LM3: AjaxT18_LM3: Ajax
T18_LM3: Ajax
 
T17_LM3: Erros/Debug (2013-2014)
T17_LM3: Erros/Debug (2013-2014)T17_LM3: Erros/Debug (2013-2014)
T17_LM3: Erros/Debug (2013-2014)
 

Último

000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf
000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf
000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf
YeniferGarcia36
 
O que é um Ménage a Trois Contemporâneo .pdf
O que é um Ménage a Trois Contemporâneo .pdfO que é um Ménage a Trois Contemporâneo .pdf
O que é um Ménage a Trois Contemporâneo .pdf
Pastor Robson Colaço
 
1ª LEI DE OHN, CARACTERISTICAS IMPORTANTES.
1ª LEI DE OHN, CARACTERISTICAS IMPORTANTES.1ª LEI DE OHN, CARACTERISTICAS IMPORTANTES.
1ª LEI DE OHN, CARACTERISTICAS IMPORTANTES.
LeticiaRochaCupaiol
 
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptxSlides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
LuizHenriquedeAlmeid6
 
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
AntnioManuelAgdoma
 
CRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdf
CRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdfCRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdf
CRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdf
soaresdesouzaamanda8
 
A QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdf
A QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdfA QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdf
A QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdf
AurelianoFerreirades2
 
Estrutura Pedagógica - Laboratório de Educação a Distância.ppt
Estrutura Pedagógica - Laboratório de Educação a Distância.pptEstrutura Pedagógica - Laboratório de Educação a Distância.ppt
Estrutura Pedagógica - Laboratório de Educação a Distância.ppt
livrosjovert
 
05-os-pre-socraticos sociologia-28-slides.pptx
05-os-pre-socraticos sociologia-28-slides.pptx05-os-pre-socraticos sociologia-28-slides.pptx
05-os-pre-socraticos sociologia-28-slides.pptx
ValdineyRodriguesBez1
 
Testes + soluções_Mensagens12 )11111.pdf
Testes + soluções_Mensagens12 )11111.pdfTestes + soluções_Mensagens12 )11111.pdf
Testes + soluções_Mensagens12 )11111.pdf
lveiga112
 
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptxTreinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
MarcosPaulo777883
 
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdfUFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
Manuais Formação
 
Rimas, Luís Vaz de Camões. pptx
Rimas, Luís Vaz de Camões.          pptxRimas, Luís Vaz de Camões.          pptx
Rimas, Luís Vaz de Camões. pptx
TomasSousa7
 
cronograma-enem-2024-planejativo-estudos.pdf
cronograma-enem-2024-planejativo-estudos.pdfcronograma-enem-2024-planejativo-estudos.pdf
cronograma-enem-2024-planejativo-estudos.pdf
todorokillmepls
 
A SOCIOLOGIA E O TRABALHO: ANÁLISES E VIVÊNCIAS
A SOCIOLOGIA E O TRABALHO: ANÁLISES E VIVÊNCIASA SOCIOLOGIA E O TRABALHO: ANÁLISES E VIVÊNCIAS
A SOCIOLOGIA E O TRABALHO: ANÁLISES E VIVÊNCIAS
HisrelBlog
 
Reino-Vegetal plantas e demais conceitos .pptx
Reino-Vegetal plantas e demais conceitos .pptxReino-Vegetal plantas e demais conceitos .pptx
Reino-Vegetal plantas e demais conceitos .pptx
CarinaSantos916505
 
Pintura Romana .pptx
Pintura Romana                     .pptxPintura Romana                     .pptx
Pintura Romana .pptx
TomasSousa7
 
Atividade letra da música - Espalhe Amor, Anavitória.
Atividade letra da música - Espalhe  Amor, Anavitória.Atividade letra da música - Espalhe  Amor, Anavitória.
Atividade letra da música - Espalhe Amor, Anavitória.
Mary Alvarenga
 
PP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptx
PP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptxPP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptx
PP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptx
LuizHenriquedeAlmeid6
 
Vogais Ilustrados para alfabetização infantil
Vogais Ilustrados para alfabetização infantilVogais Ilustrados para alfabetização infantil
Vogais Ilustrados para alfabetização infantil
mamaeieby
 

Último (20)

000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf
000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf
000. Para rezar o terço - Junho - mês do Sagrado Coração de Jesús.pdf
 
O que é um Ménage a Trois Contemporâneo .pdf
O que é um Ménage a Trois Contemporâneo .pdfO que é um Ménage a Trois Contemporâneo .pdf
O que é um Ménage a Trois Contemporâneo .pdf
 
1ª LEI DE OHN, CARACTERISTICAS IMPORTANTES.
1ª LEI DE OHN, CARACTERISTICAS IMPORTANTES.1ª LEI DE OHN, CARACTERISTICAS IMPORTANTES.
1ª LEI DE OHN, CARACTERISTICAS IMPORTANTES.
 
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptxSlides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
Slides Lição 11, CPAD, A Realidade Bíblica do Inferno, 2Tr24.pptx
 
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
347018542-PAULINA-CHIZIANE-Balada-de-Amor-ao-Vento-pdf.pdf
 
CRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdf
CRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdfCRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdf
CRONOGRAMA - PSC 2° ETAPA 2024.pptx (1).pdf
 
A QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdf
A QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdfA QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdf
A QUESTÃO ANTROPOLÓGICA: O QUE SOMOS OU QUEM SOMOS.pdf
 
Estrutura Pedagógica - Laboratório de Educação a Distância.ppt
Estrutura Pedagógica - Laboratório de Educação a Distância.pptEstrutura Pedagógica - Laboratório de Educação a Distância.ppt
Estrutura Pedagógica - Laboratório de Educação a Distância.ppt
 
05-os-pre-socraticos sociologia-28-slides.pptx
05-os-pre-socraticos sociologia-28-slides.pptx05-os-pre-socraticos sociologia-28-slides.pptx
05-os-pre-socraticos sociologia-28-slides.pptx
 
Testes + soluções_Mensagens12 )11111.pdf
Testes + soluções_Mensagens12 )11111.pdfTestes + soluções_Mensagens12 )11111.pdf
Testes + soluções_Mensagens12 )11111.pdf
 
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptxTreinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
Treinamento NR 38 - CORPO PRINCIPAL da NORMA.pptx
 
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdfUFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
UFCD_3546_Prevenção e primeiros socorros_geriatria.pdf
 
Rimas, Luís Vaz de Camões. pptx
Rimas, Luís Vaz de Camões.          pptxRimas, Luís Vaz de Camões.          pptx
Rimas, Luís Vaz de Camões. pptx
 
cronograma-enem-2024-planejativo-estudos.pdf
cronograma-enem-2024-planejativo-estudos.pdfcronograma-enem-2024-planejativo-estudos.pdf
cronograma-enem-2024-planejativo-estudos.pdf
 
A SOCIOLOGIA E O TRABALHO: ANÁLISES E VIVÊNCIAS
A SOCIOLOGIA E O TRABALHO: ANÁLISES E VIVÊNCIASA SOCIOLOGIA E O TRABALHO: ANÁLISES E VIVÊNCIAS
A SOCIOLOGIA E O TRABALHO: ANÁLISES E VIVÊNCIAS
 
Reino-Vegetal plantas e demais conceitos .pptx
Reino-Vegetal plantas e demais conceitos .pptxReino-Vegetal plantas e demais conceitos .pptx
Reino-Vegetal plantas e demais conceitos .pptx
 
Pintura Romana .pptx
Pintura Romana                     .pptxPintura Romana                     .pptx
Pintura Romana .pptx
 
Atividade letra da música - Espalhe Amor, Anavitória.
Atividade letra da música - Espalhe  Amor, Anavitória.Atividade letra da música - Espalhe  Amor, Anavitória.
Atividade letra da música - Espalhe Amor, Anavitória.
 
PP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptx
PP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptxPP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptx
PP Slides Lição 11, Betel, Ordenança para exercer a fé, 2Tr24.pptx
 
Vogais Ilustrados para alfabetização infantil
Vogais Ilustrados para alfabetização infantilVogais Ilustrados para alfabetização infantil
Vogais Ilustrados para alfabetização infantil
 

LabMM4 (T07 - 12/13) - SQL Joins, Especialização/Generalização

  • 1. Bases de dados: SQL Joins, especialização/ generalização Carlos Santos LabMM 4 - NTC - DeCA - UA Aula 07, 07-03-2013
  • 2. E como obter dados resultantes de várias tabelas? Os processos de combinar dados de várias tabelas numa query são suportados pelas relações (JOINS) existentes entre elas. • exemplo: “listar todos os empréstimos indicando o nome do amigo” amigos empres&mos id_amigo nome telefone id_empres&mo data_empres&mo data_devolucao id_amigo 1 José  Mourinho 916545955 1 2010-­‐02-­‐23 2010-­‐02-­‐25 1 2 Jorge  Jesus 234545955 2 2010-­‐04-­‐11 2010-­‐04-­‐18 3 Domingos  Paciência 234897897 3 2010-­‐03-­‐13 2010-­‐03-­‐19 1 4 Vítor  Pereira 923435566 4 2010-­‐05-­‐21 2010-­‐05-­‐23 4 5 André  Villas-­‐Boas 934975766 5 2010-­‐06-­‐25 2010-­‐06-­‐29
  • 3. Joins amigos empres&mos id_amigo nome telefone id_empres&mo data_empres&mo data_devolucao id_amigo 1 José  Mourinho 916545955 1 2010-­‐02-­‐23 2010-­‐02-­‐25 1 2 Jorge  Jesus 234545955 2 2010-­‐04-­‐11 2010-­‐04-­‐18 3 Domingos  Paciência 234897897 3 2010-­‐03-­‐13 2010-­‐03-­‐19 1 4 Vítor  Pereira 923435566 4 2010-­‐05-­‐21 2010-­‐05-­‐23 4 5 André  Villas-­‐Boas 934975766 5 2010-­‐06-­‐25 2010-­‐06-­‐29 amigos  sem   amigos  com emprés&mos   emprés&mos emprés&mos sem  amigos registos registos não  relacionados registos não  relacionados relacionados
  • 4. INNER JOIN (standard/exclusivo/natural) Num join natural, um INNER JOIN, os dados resultantes de uma query são apenas aqueles que podem ser relacionados entre as duas tabelas. • SELECT nome_coluna(s) FROM nome_tabela1 INNER JOIN nome_tabela2 ON nome_tabela1.nome_coluna=nome_tabela2.nome_coluna ...; A ter em atenção: • os campos mencionados na condição do join são a PK e FK que estabelecem a relação entre as duas tabelas • os dados da tabela “nome_tabela1” que não estão relacionados com dados da tabela “nome_tabela2” não são retornados na query • o inverso da última afirmação também é verdade
  • 5. INNER JOIN Exemplo: Selecionar todos os Amigos com Empréstimos • SELECT MeusCDs.amigos.nome, MeusCDs.emprestimos.id_emprestimo FROM MeusCDs.amigos INNER JOIN MeusCDs.emprestimos ON MeusCDs.amigos.id_amigo = MeusCDs.emprestimos.ref_id_amigos; • SELECT amigos.nome, emprestimos.id_emprestimo FROM amigos INNER JOIN emprestimos ON amigos.id_amigo = emprestimos.ref_id_amigos;
  • 6. INNER JOIN Exemplo: Selecionar todos os Amigos com Empréstimos ATENÇÃO: as chaves têm nomes diferentes do modelo do slide anterior! • SELECT amigos.nome, emprestimos.id_emprestimo FROM amigos INNER JOIN emprestimos ON amigos.id_amigo = emprestimos.id_amigo;
  • 7. OUTER JOIN (inclusivos) Os OUTER JOINS permitem obter os registos relacionados e os não relacionados. Podem ser do tipo LEFT ou RIGHT, de acordo com o sentido do JOIN. • LEFT JOIN Mostra todos os registos relacionados (Amigos com Empréstimos) + Registos não relacionados da tabela esquerda (tabela de partida): amigos (Amigos sem Empréstimos) • RIGHT JOIN Mostra todos os registos relacionados (Amigos com Empréstimos) + Registos não relacionados da tabela direita (tabela de chegada): emprestimos (Empréstimos sem Amigos)
  • 8. LEFT OUTER JOIN Exemplo: Seleccionar todos os amigos com empréstimos e todos os amigos sem empréstimos • SELECT amigos.nome, emprestimos.id_emprestimo FROM amigos LEFT JOIN emprestimos ON amigos.id_amigo = emprestimos.id_amigo;
  • 9. JOINS: exemplo 2 Considere-se um stand automóvel onde cada vendedor é responsável pela venda de vários automóveis. No entanto, num dado momento, poderão existir: vendedores sem automóveis atribuídos e automóveis sem vendedor atribuído.
  • 10. JOINS: exemplo 2 Selecionar todos os vendedores com carros atribuídos • SELECT vendedores.Nome, automoveis.Marca, automoveis.Modelo FROM vendedores INNER JOIN automoveis ON vendedores.idVENDEDORES = automoveis.VENDEDORES_idVENDEDORES
  • 11. JOINS: exemplo 2 Selecionar todos os vendedores com e sem carros atribuídos • SELECT vendedores.Nome, automoveis.Marca, automoveis.Modelo FROM vendedores LEFT JOIN automoveis ON vendedores.idVENDEDORES = automoveis.VENDEDORES_idVENDEDORES
  • 12. JOINS: exemplo 2 Na tabela automóveis foram adicionados 2 novos registos (2 novos automóveis) aos quais ainda não foi atribuído um vendedor. Selecionar todos os vendedores com carros atribuídos e os carros sem vendedor atribuído • SELECT vendedores.Nome, automoveis.Marca, automoveis.Modelo FROM vendedores RIGHT JOIN automoveis ON vendedores.idVENDEDORES = automoveis.VENDEDORES_idVENDEDORES
  • 13. JOINS: FULL JOIN no MySQL Selecionar todos os vendedores com carros atribuídos e sem carros atribuídos e todos os carros atribuídos e carros sem vendedor atribuído • SELECT vendedores.Nome, automoveis.Marca, automoveis.Modelo FROM vendedores LEFT JOIN automoveis ON vendedores.idVENDEDORES = automoveis.VENDEDORES_idVENDEDORES UNION SELECT vendedores.Nome, automoveis.Marca, automoveis.Modelo FROM vendedores RIGHT JOIN automoveis ON vendedores.idVENDEDORES = automoveis.VENDEDORES_idVENDEDORES
  • 14. JOINS: FULL JOIN no MySQL Selecionar todos os vendedores com carros atribuídos e sem carros atribuídos e todos os carros atribuídos e carros sem vendedor atribuído
  • 15. Especialização/Generalização Numa biblioteca pretende-se catalogar os vários tipo de publicações (livros/monografias) e (revistas/periódicos) com um sistema de numeração único Tabela de generalização Tabelas de especialização
  • 16. Especialização/Generalização As publicações são uma generalização dos conceitos monografias e periódicos • A tabela PUBLICACOES armazena as características comuns a todas as publicações As monografias e os periódicos são especializações do conceito publicações • As tabelas MONOGRAFIAS e PERIODICOS armazenam as características específicas (especiais) de cada tipo de publicação As monografias e periódicos “herdam” todas as características comuns definidas em publicações