SlideShare una empresa de Scribd logo
1 de 5
Descargar para leer sin conexión
SQL – DML
 • Consultas envolvendo mais de uma tabela
      select lista_atributos
      from tabela1, ..., tabelam
      [where condição]

 • Mapeamento para a álgebra relacional

 select a1, ..., an
 from tab1, ..., tabm                π a1, ..., an (σ c (tab1 X ... X tabm))
 where c




                                  Exemplos
                 Álgebra                                 SQL
                                             Select *
       (Pacientes X Consultas)               From Pacientes, Consultas
                                             Select CPF, nome, data
π CPF, nome, data (                    From Pacientes,Consultas
σ hora > 12:00 (Pacientes X Consultas) Where hora > ‘12:00’
                                       and Pacientes.codp =
∧ Pacientes.codp = Consultas.codp )
                                             Consultas.codp
π m2.nome (                                  Select m2.nome
σ m1.nome = ‘Joao’ ∧ m1.especialidade =      From Médicos m1, Médicos
m2.especialidade (                           m2
(ρ m1 (Médicos)) X                           Where m1.nome = ‘João’
(ρ m2 (Médicos))                             and m1.especialidade =
))                                           m2.especialidade




                                                                               1
Junção
• Sintaxe
    select lista_atributos
    from tabela1 [inner] join tabela2 on
      condição_junção [join tabela3 on ...]
    [where condição]

• Mapeamento para a álgebra relacional
  select a1, ..., an
  from tab1 join tab2              πa1, ..., an (σ c (tab1 θ X tab2))
  on tab1.x > tab2.x                            θ = tab1.x > tab2.x
  where c




                             Exemplos

             Álgebra                               SQL
                                        Select *
                                        From Pacientes join
    (Pacientes θ X Consultas)           Consultas on
  θ = Pacientes.codp = Consultas.codp
                                        Pacientes.codp =
                                        Consultas.codp
                                      Select nome
πnome (σ data = ’2006/11/13’          From Médicos join
    (Médicos θ X Consultas)         ) Consultas on Médicos.codm
  θ = Médicos.codm = Consultas.codm   = Consultas.codm
                                      Where data = ‘2006/11/13’




                                                                        2
Junção Natural
 • Sintaxe
     select lista_atributos
     from tabela1 natural join tabela2
     [natural join tabela3 ...]
     [where condição]

 • Mapeamento para a álgebra relacional
select a1, ..., an
from tab1 natural join tab2          πa1, ..., an (σc (tab1   tab2))
where c




                             Exemplos
              Álgebra                             SQL
                                     Select *
     (Pacientes       Consultas)     From Pacientes natural
                                     join Consultas

                                     Select nome
πnome (σ data = ’2006/11/13’
                                     From Médicos natural join
    (Médicos            Consultas)   Consultas
       )                             Where data = ‘2006/11/13’




                                                                       3
Junções Externas (Não Naturais)
• Sintaxe
    select lista_atributos
    from tabela1 left|right|full [outer] join
      tabela2 on condição_junção
     [join tabela3 on ...]
    [where condição]

• Mapeamento para a álgebra relacional
    select a1, ..., an
    from t1 left join t2                πa1, ..., an (σ c (t1 θ X t2))
    on t1.x > t2.x                                    θ = t1.x > t2.x
    where c




                             Exemplos
             Álgebra                                    SQL
                                           Select *
                                           From Pacientes left join
   (Pacientes θ X Consultas)               Consultas on
  θ = Pacientes.codp = Consultas.codp
                                           Pacientes.codp =
                                           Consultas.codp
                                           Select nome
πnome (σ data = ’06/11/13’                 From Médicos right join
    (Consultas θ X Médicos))               Consultas on Médicos.codm
  θ = Médicos.codm = Consultas.codm        = Consultas.codm
                                           Where data = ‘06/11/13’




                                                                         4
Exercícios
Defina cada uma das seguintes buscas através de um produto, de uma junção
(e de uma junção natural, quando possível). Quando necessário, utilizar
junção externa:
1) nome e CPF dos médicos que também são pacientes do hospital
2) pares (código, nome) de funcionários e de médicos que residem na mesma cidade
3) código e nome dos pacientes com consulta marcada para horários após às 14 horas
4) número e andar dos ambulatórios utilizados por médicos ortopedistas
5) nome e CPF dos pacientes que têm consultas marcadas entre os dias 14 e 16 de
     junho de 2006
6) nome e idade dos médicos que têm consulta com a paciente Ana
7) código e nome dos médicos que atendem no mesmo ambulatório do médico Pedro e
     que possuem consultas marcadas para dia 14/06/2006
8) nome, CPF e idade dos pacientes que têm consultas marcadas com ortopedistas
     para dias anteriores ao dia 16
9) nome e salário dos funcionários que moram na mesma cidade do funcionário Carlos
     e possuem salário superior ao dele
10) dados de todos os ambulatórios e, para aqueles ambulatórios onde médicos dão
     atendimento, exibir também os seus códigos e nomes
11) CPF e nome de todos os médicos e, para aqueles médicos com consultas
     marcadas, exibir os CPFs e nomes dos seus pacientes e as datas das consultas




                                                                                     5

Más contenido relacionado

Destacado

Affine transformations 3
Affine  transformations 3Affine  transformations 3
Affine transformations 3PowerSaw
 
Linux & Open Source : Lezione Quattro
Linux & Open Source : Lezione QuattroLinux & Open Source : Lezione Quattro
Linux & Open Source : Lezione QuattroDario Mazza
 
Linux & Open Source : Lezione 1 Pratica
Linux & Open Source : Lezione 1 PraticaLinux & Open Source : Lezione 1 Pratica
Linux & Open Source : Lezione 1 PraticaDario Mazza
 
ciberassetjament
ciberassetjamentciberassetjament
ciberassetjamentjoaumirant
 
뮤지컬 장기려 그사람
뮤지컬 장기려 그사람뮤지컬 장기려 그사람
뮤지컬 장기려 그사람Ben Kim
 
Shift Happens
Shift HappensShift Happens
Shift Happenswalbert35
 
Finalistas episj velas são jorge
Finalistas episj   velas são jorgeFinalistas episj   velas são jorge
Finalistas episj velas são jorgeBruno Pires
 
Bienvenidos a la Tienda Sensorial
Bienvenidos a la Tienda SensorialBienvenidos a la Tienda Sensorial
Bienvenidos a la Tienda Sensorialxbll
 
Expressiva - Klarspråk 2 0 - begriplex 2011
Expressiva  - Klarspråk 2 0 - begriplex 2011Expressiva  - Klarspråk 2 0 - begriplex 2011
Expressiva - Klarspråk 2 0 - begriplex 2011Anna Hass
 
Ekologi dan lingkungan
Ekologi dan lingkunganEkologi dan lingkungan
Ekologi dan lingkunganShoetiaone
 
Rpt bm tahun 4
Rpt bm tahun 4Rpt bm tahun 4
Rpt bm tahun 4Shika Nara
 
11103414110 教技本 胡淑艳
11103414110 教技本 胡淑艳11103414110 教技本 胡淑艳
11103414110 教技本 胡淑艳wzet2011
 

Destacado (20)

Segurança na Internet
Segurança na InternetSegurança na Internet
Segurança na Internet
 
Affine transformations 3
Affine  transformations 3Affine  transformations 3
Affine transformations 3
 
Linux & Open Source : Lezione Quattro
Linux & Open Source : Lezione QuattroLinux & Open Source : Lezione Quattro
Linux & Open Source : Lezione Quattro
 
Linux & Open Source : Lezione 1 Pratica
Linux & Open Source : Lezione 1 PraticaLinux & Open Source : Lezione 1 Pratica
Linux & Open Source : Lezione 1 Pratica
 
ciberassetjament
ciberassetjamentciberassetjament
ciberassetjament
 
뮤지컬 장기려 그사람
뮤지컬 장기려 그사람뮤지컬 장기려 그사람
뮤지컬 장기려 그사람
 
Shift Happens
Shift HappensShift Happens
Shift Happens
 
Ekonomi
EkonomiEkonomi
Ekonomi
 
Pw 3
Pw 3Pw 3
Pw 3
 
Finalistas episj velas são jorge
Finalistas episj   velas são jorgeFinalistas episj   velas são jorge
Finalistas episj velas são jorge
 
Technology in english classes
Technology in english classesTechnology in english classes
Technology in english classes
 
Bienvenidos a la Tienda Sensorial
Bienvenidos a la Tienda SensorialBienvenidos a la Tienda Sensorial
Bienvenidos a la Tienda Sensorial
 
Expressiva - Klarspråk 2 0 - begriplex 2011
Expressiva  - Klarspråk 2 0 - begriplex 2011Expressiva  - Klarspråk 2 0 - begriplex 2011
Expressiva - Klarspråk 2 0 - begriplex 2011
 
La salle!
La salle!La salle!
La salle!
 
Internet
InternetInternet
Internet
 
Anboto 432
Anboto 432Anboto 432
Anboto 432
 
Ekologi dan lingkungan
Ekologi dan lingkunganEkologi dan lingkungan
Ekologi dan lingkungan
 
Rpt bm tahun 4
Rpt bm tahun 4Rpt bm tahun 4
Rpt bm tahun 4
 
Comoinstalaramor
ComoinstalaramorComoinstalaramor
Comoinstalaramor
 
11103414110 教技本 胡淑艳
11103414110 教技本 胡淑艳11103414110 教技本 胡淑艳
11103414110 教技本 胡淑艳
 

Último

Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfSamaraLunas
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx2m Assessoria
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuisKitota
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploDanilo Pinotti
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsDanilo Pinotti
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx2m Assessoria
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx2m Assessoria
 

Último (9)

Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 

7 sql3

  • 1. SQL – DML • Consultas envolvendo mais de uma tabela select lista_atributos from tabela1, ..., tabelam [where condição] • Mapeamento para a álgebra relacional select a1, ..., an from tab1, ..., tabm π a1, ..., an (σ c (tab1 X ... X tabm)) where c Exemplos Álgebra SQL Select * (Pacientes X Consultas) From Pacientes, Consultas Select CPF, nome, data π CPF, nome, data ( From Pacientes,Consultas σ hora > 12:00 (Pacientes X Consultas) Where hora > ‘12:00’ and Pacientes.codp = ∧ Pacientes.codp = Consultas.codp ) Consultas.codp π m2.nome ( Select m2.nome σ m1.nome = ‘Joao’ ∧ m1.especialidade = From Médicos m1, Médicos m2.especialidade ( m2 (ρ m1 (Médicos)) X Where m1.nome = ‘João’ (ρ m2 (Médicos)) and m1.especialidade = )) m2.especialidade 1
  • 2. Junção • Sintaxe select lista_atributos from tabela1 [inner] join tabela2 on condição_junção [join tabela3 on ...] [where condição] • Mapeamento para a álgebra relacional select a1, ..., an from tab1 join tab2 πa1, ..., an (σ c (tab1 θ X tab2)) on tab1.x > tab2.x θ = tab1.x > tab2.x where c Exemplos Álgebra SQL Select * From Pacientes join (Pacientes θ X Consultas) Consultas on θ = Pacientes.codp = Consultas.codp Pacientes.codp = Consultas.codp Select nome πnome (σ data = ’2006/11/13’ From Médicos join (Médicos θ X Consultas) ) Consultas on Médicos.codm θ = Médicos.codm = Consultas.codm = Consultas.codm Where data = ‘2006/11/13’ 2
  • 3. Junção Natural • Sintaxe select lista_atributos from tabela1 natural join tabela2 [natural join tabela3 ...] [where condição] • Mapeamento para a álgebra relacional select a1, ..., an from tab1 natural join tab2 πa1, ..., an (σc (tab1 tab2)) where c Exemplos Álgebra SQL Select * (Pacientes Consultas) From Pacientes natural join Consultas Select nome πnome (σ data = ’2006/11/13’ From Médicos natural join (Médicos Consultas) Consultas ) Where data = ‘2006/11/13’ 3
  • 4. Junções Externas (Não Naturais) • Sintaxe select lista_atributos from tabela1 left|right|full [outer] join tabela2 on condição_junção [join tabela3 on ...] [where condição] • Mapeamento para a álgebra relacional select a1, ..., an from t1 left join t2 πa1, ..., an (σ c (t1 θ X t2)) on t1.x > t2.x θ = t1.x > t2.x where c Exemplos Álgebra SQL Select * From Pacientes left join (Pacientes θ X Consultas) Consultas on θ = Pacientes.codp = Consultas.codp Pacientes.codp = Consultas.codp Select nome πnome (σ data = ’06/11/13’ From Médicos right join (Consultas θ X Médicos)) Consultas on Médicos.codm θ = Médicos.codm = Consultas.codm = Consultas.codm Where data = ‘06/11/13’ 4
  • 5. Exercícios Defina cada uma das seguintes buscas através de um produto, de uma junção (e de uma junção natural, quando possível). Quando necessário, utilizar junção externa: 1) nome e CPF dos médicos que também são pacientes do hospital 2) pares (código, nome) de funcionários e de médicos que residem na mesma cidade 3) código e nome dos pacientes com consulta marcada para horários após às 14 horas 4) número e andar dos ambulatórios utilizados por médicos ortopedistas 5) nome e CPF dos pacientes que têm consultas marcadas entre os dias 14 e 16 de junho de 2006 6) nome e idade dos médicos que têm consulta com a paciente Ana 7) código e nome dos médicos que atendem no mesmo ambulatório do médico Pedro e que possuem consultas marcadas para dia 14/06/2006 8) nome, CPF e idade dos pacientes que têm consultas marcadas com ortopedistas para dias anteriores ao dia 16 9) nome e salário dos funcionários que moram na mesma cidade do funcionário Carlos e possuem salário superior ao dele 10) dados de todos os ambulatórios e, para aqueles ambulatórios onde médicos dão atendimento, exibir também os seus códigos e nomes 11) CPF e nome de todos os médicos e, para aqueles médicos com consultas marcadas, exibir os CPFs e nomes dos seus pacientes e as datas das consultas 5