Você está na página 1de 15

Inner e Outer Join

Bancos de Dados
Prof. Geraldo Corrêa
Relação Agência Relação Cliente
nomeAgência cidadeAgência nomeCliente ruaCliente cidadeCliente
São João POA Denise Olinda POA
Assis Brasil Canoas João Paraná POA
Verde Guaíba Pedro Pará Canoas
Farrapos POA Ana Viena Canoas
Itu Canoas Maria Chicago Guaíba
Relação Conta
nomeAgência nroConta nomeCliente saldo
Farrapos 100 Denise 2000
Farrapos 200 Pedro 300
São João 300 Ana 2500
Verde 50 Maria 3000
São João 400 João 1000

Relação Empréstimo
nomeAgência nroEmpréstimo nomeCliente valor
Assis Brasil 100 Pedro 7000
Verde 200 Maria 11000
Assis Brasil 400 João 5000
São João 500 Ana 35000
Álgebra Relacional – Produto
Cartesiano
 Produto Cartesiano
 combinação de todas as tuplas de 2 relações
 utilizado quando se necessita obter dados presentes em duas ou
mais relações
 Notação:

<relação 1> X <relação 2>


Produto Cartesiano – Exemplos
(cont.)
 e) Encontrar os dados dos clientes que fizeram empréstimo e
as cidades onde eles vivem.
emprestimo.nomeClient
nomeAgencia nroEmprestimo valor cliente.nomeCliente ruaCliente cidadeCliente
e
Assis Brasil 100 Pedro 7000 Denise Olinda POA
Verde 200 Maria 11000 Denise Olinda POA
Consulta1
Assis Brasil 400 João 5000 Denise Olinda POA
São João 500 Ana 35000 Denise Olinda POA
Assis Brasil 100 Pedro 7000 João Paraná POA
Verde 200 Maria 11000 João Paraná POA
Assis Brasil 400 João 5000 João Paraná POA
São João 500 Ana 35000 João Paraná POA
Assis Brasil 100 Pedro 7000 Pedro Pará Canoas
Verde 200 Maria 11000 Pedro Pará Canoas
Assis Brasil 400 João 5000 Pedro Pará Canoas
São João 500 Ana 35000 Pedro Pará Canoas
Assis Brasil 100 Pedro 7000 Ana Viena Canoas
Verde 200 Maria 11000 Ana Viena Canoas
Assis Brasil 400 João 5000 Ana Viena Canoas
São João 500 Ana 35000 Ana Viena Canoas
Assis Brasil 100 Pedro 7000 Maria Chicago Guaíba
Verde 200 Maria 11000 Maria Chicago Guaíba
Assis Brasil 400 João 5000 Maria Chicago Guaíba
Produto Cartesiano – Exemplos
(cont.)
 e) Encontrar os dados dos clientes que fizeram empréstimo e
as cidades onde eles vivem.

 nomeCliente, cidadeCliente (
σ Empréstimo.nomeCliente = Cliente.nomeCliente
(Empréstimo X Cliente)
)
Select nomeCliente, cidadeCliente
from Emprestimo, Cliente
Where Emprestimo.nomeCliente = Cliente.nomeCliente
Definição de INNER JOIN
 Em muitos casos, você poderá precisar apresentar um
resultado o qual não está em apenas uma tabela.
 Então você utiliza o INNER JOIN para fazer esse
relacionamento das tabelas;
 Quando duas tabelas estão interligadas, de alguma forma,
precisa-se de um campo comum entre ambas (chave
estrangeira).

7
Exemplo

Empregado Origem - Esquerda

N
1

Departamento Destino - Direita

8
Para saber qual o departamento
de cada empregado
SELECT emp.nome_emp, dep.nome_dep
FROM emp
INNER JOIN dep ON emp.n_dep = dep.n_dep
ORDER BY emp.nome_emp

9
OUTER JOIN
 O INNER JOIN, faz o relacionamento entre duas tabelas e
depois exibe o que está nas duas tabelas do relacionamento
indicado.
 Já o OUTER JOIN faz a mesma coisa, porém retorna os dados
de acordo com a tabela da esquerda (LEFT) ou da direita
(RIGTH).

10
LEFT JOIN
 O LEFT JOIN retorna os dados de acordo com a tabela
da esquerda (a primeira tabela que foi declarada),
independente se no relacionamento com a tabela da
direita não possuir o valor do campo de
relacionamento;

11
LEFT JOIN
Insira dois empregados sem ligação com departamentos

SELECT emp.nome_emp, dep.nome_dep


FROM emp
LEFT JOIN dep ON emp.n_dep = dep.n_dep
ORDER BY emp.nome_emp

12
RIGHT JOIN
 Retorna os dados de acordo com a tabela da direita (a segunda
tabela que foi declarada), independente se no relacionamento
com a tabela da direita não possuir o valor do campo de
relacionamento;

13
RIGHT JOIN
Insira dois departamentos sem empregados

SELECT emp.nome_emp, dep.nome_dep


FROM emp
RIGHT JOIN dep ON emp.n_dep = dep.n_dep
ORDER BY emp.nome_emp

14
Exercícios
1) Insira dois empregados que não tem relação com
departamento
2) Insira um departamento que não tem nenhum funcionário
relacionado.
3) Rodar os exemplos da Escola de Informática com o Inner
Join;
4) Realize uma consulta em 4 tabelas.
5) Rodar os exemplos que estão neste slide.

15

Você também pode gostar