Junções sql

597 palavras 3 páginas
Banco de Dados Avançados

Aula 02

JUNÇÕES (JOINS)

Aula passada
 Fizeram o exercício de revisão?
 Alguém sem acesso ao domínio LAB_IMED ?

 Testar VM_Oracle no VirtualBox do Laboratório!!

Junção Implícita
 Expressa dentro da cláusula WHERE
 Usando palavra reservadas
 INNER JOIN
 ON

Exemplo 1
SELECT m.nome, COUNT(c.data) AS qtdConsultas
FROM medico m, consulta c
WHERE m.codigo = c.codigo
GROUP BY m.nome

Exemplo 2
SELECT m.nome, COUNT(c.data) AS qtdConsultas
FROM medico m INNER JOIN consulta c
ON m.codigo = c.codigo
GROUP BY m.nome
Podemos utilizar apenas JOIN ou INNER JOIN

Resultado
 Essa consulta lista médicos e a quantidade de consultas efetuadas por cada um
 Caso um médico não tenha consulta, este não aparece no resultado
 Esse é o objetivo do JOIN padrão!

Problema!
 E se quisermos mostrar também os médicos que não possuem consultas ??
 Teremos que usar outro tipo de join:

OUTER JOIN

Resultado esperado
Nome

Quantidade de consultas

Ana

10

Paulo

22

José

40

Everton

32

André

NULL

Francisco

NULL

Outer Join
SELECT m.nome, COUNT(c.data) AS qtdConsultas
FROM medico m LEFT OUTER JOIN consulta c
ON m.codigo = c.codigo
GROUP BY m.nome

Tipo de Outer Join
 LEFT
 RIGHT

 FULL

Tipo de Outer Join
LEFT

Todos os dados da tabela da esquerda

RIGHT

Todos os dados da tabela da direita

FULL

Dados de ambas as tabelas LEFT OUTER JOIN
SELECT m.nome, COUNT(c.data) AS qtdConsultas
FROM medico m LEFT OUTER JOIN consulta c
ON m.codigo = c.codigo
GROUP BY m.nome

LEFT OUTER JOIN
Nome

Quantidade de consultas

Ana

10

Paulo

22

José

40

Everton

32

André

NULL

Francisco

NULL

Todos os dados da tabela da esquerda

RIGHT OUTER JOIN
SELECT c.data, c.hora, r.descricao
FROM consulta c RIGHT OUTER JOIN receita r
ON c.codReceita = r.codigo

RIGHT OUTER JOIN
Data

Hora

Descricao

Relacionados

  • Trabalho De Matem Tica Discreta
    1067 palavras | 5 páginas
  • Join e suas variações
    705 palavras | 3 páginas
  • tuning sql
    7469 palavras | 30 páginas
  • Sql 110411191509 Phpapp01 2
    4661 palavras | 19 páginas
  • IndiceseOtimizadores
    2768 palavras | 12 páginas
  • Consulta SQL básica - joins
    8246 palavras | 33 páginas
  • bd2 otimizacao de consultas
    1749 palavras | 7 páginas
  • Curso SQL
    3484 palavras | 14 páginas
  • Sql dados
    6740 palavras | 27 páginas
  • sql server
    6603 palavras | 27 páginas