SlideShare une entreprise Scribd logo
1  sur  16
Télécharger pour lire hors ligne
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

Contenu connexe

En vedette

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 BooleJocelma Rios
 
Arquitetura de-computadores
Arquitetura de-computadoresArquitetura de-computadores
Arquitetura de-computadoresPimentel
 
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
 

En vedette (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)
 

Plus 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 estudantesCarlos Santos
 
1º Encontro Científico TCEdu
1º Encontro Científico TCEdu1º Encontro Científico TCEdu
1º Encontro Científico TCEduCarlos 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 inicialCarlos 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 alunosCarlos 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 alunosCarlos 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áticoCarlos 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
 
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 EnvironmentCarlos 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 CampusCarlos 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 projectCarlos Santos
 
SAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativoSAPO Campus: Gamification em contexto educativo
SAPO Campus: Gamification em contexto educativoCarlos 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 DeCACarlos Santos
 
T20_LM3: APIs e Scoreoid
T20_LM3: APIs e ScoreoidT20_LM3: APIs e Scoreoid
T20_LM3: APIs e ScoreoidCarlos 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çãoCarlos 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
 

Plus 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)
 

Dernier

ANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
ANTIGUIDADE CLÁSSICA - Grécia e Roma AntigaANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
ANTIGUIDADE CLÁSSICA - Grécia e Roma AntigaJúlio Sandes
 
Slides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptxSlides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptxSilvana Silva
 
Universidade Empreendedora como uma Plataforma para o Bem comum
Universidade Empreendedora como uma Plataforma para o Bem comumUniversidade Empreendedora como uma Plataforma para o Bem comum
Universidade Empreendedora como uma Plataforma para o Bem comumPatrícia de Sá Freire, PhD. Eng.
 
Simulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfSimulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfEditoraEnovus
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024Jeanoliveira597523
 
Recurso Casa das Ciências: Sistemas de Partículas
Recurso Casa das Ciências: Sistemas de PartículasRecurso Casa das Ciências: Sistemas de Partículas
Recurso Casa das Ciências: Sistemas de PartículasCasa Ciências
 
ELETIVA TEXTOS MULTIMODAIS LINGUAGEM VER
ELETIVA TEXTOS MULTIMODAIS LINGUAGEM VERELETIVA TEXTOS MULTIMODAIS LINGUAGEM VER
ELETIVA TEXTOS MULTIMODAIS LINGUAGEM VERDeiciane Chaves
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesMary Alvarenga
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividadeMary Alvarenga
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalJacqueline Cerqueira
 
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxLuizHenriquedeAlmeid6
 
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMCOMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMVanessaCavalcante37
 
GÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - CartumGÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - CartumAugusto Costa
 
“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptx“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptxthaisamaral9365923
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditaduraAdryan Luiz
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinhaMary Alvarenga
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfAdrianaCunha84
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?Rosalina Simão Nunes
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxOsnilReis1
 

Dernier (20)

ANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
ANTIGUIDADE CLÁSSICA - Grécia e Roma AntigaANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
ANTIGUIDADE CLÁSSICA - Grécia e Roma Antiga
 
Slides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptxSlides 1 - O gênero textual entrevista.pptx
Slides 1 - O gênero textual entrevista.pptx
 
Universidade Empreendedora como uma Plataforma para o Bem comum
Universidade Empreendedora como uma Plataforma para o Bem comumUniversidade Empreendedora como uma Plataforma para o Bem comum
Universidade Empreendedora como uma Plataforma para o Bem comum
 
Simulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfSimulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdf
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024
 
Recurso Casa das Ciências: Sistemas de Partículas
Recurso Casa das Ciências: Sistemas de PartículasRecurso Casa das Ciências: Sistemas de Partículas
Recurso Casa das Ciências: Sistemas de Partículas
 
ELETIVA TEXTOS MULTIMODAIS LINGUAGEM VER
ELETIVA TEXTOS MULTIMODAIS LINGUAGEM VERELETIVA TEXTOS MULTIMODAIS LINGUAGEM VER
ELETIVA TEXTOS MULTIMODAIS LINGUAGEM VER
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das Mães
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividade
 
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
Orientação Técnico-Pedagógica EMBcae Nº 001, de 16 de abril de 2024
 
Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem Organizacional
 
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
 
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEMCOMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
COMPETÊNCIA 1 DA REDAÇÃO DO ENEM - REDAÇÃO ENEM
 
GÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - CartumGÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
GÊNERO TEXTUAL - TIRINHAS - Charges - Cartum
 
“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptx“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptx
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditadura
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinha
 
William J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdfWilliam J. Bennett - O livro das virtudes para Crianças.pdf
William J. Bennett - O livro das virtudes para Crianças.pdf
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
 

SQL Joins e especialização/generalização em bases de dados

  • 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