Escolar Documentos
Profissional Documentos
Cultura Documentos
Capítulo 6 - Joins
Capítulo 6 - Joins
_______________________________________________________________________________________________________________________________________________________
1
Capítulo 6 – BANCO DE DADOS
_______________________________________________________________________________________________________________________________________________________
A cláusula JOIN no SQL é uma forma de relacionar duas tabelas e gerar uma
tabela resultante com as relações explícitas entre elas. Por exemplo, uma das
operações pode ser simplesmente buscar o que é comum entre as tabelas e
ressaltar isso em um novo conjunto.
Baseia-se fortemente na teoria dos conjuntos. É, aliás, um dos muitos conceitos
da computação que praticamente implementam a base da teoria dos conjuntos.
Suas operações são literalmente as operações de união, subtração e
intersecção da teoria de conjuntos em formas de comando no SQL.
2. COMANDO JOIN
• INNER JOIN,
• LEFT JOIN,
• RIGHT JOIN,
• FULL JOIN
• CROSS JOIN.
2
Capítulo 6 – BANCO DE DADOS
_______________________________________________________________________________________________________________________________________________________
3. INNER JOIN
O INNER JOIN traz uma ideia muito intuitiva: a de buscar a intersecção entre as
tabelas (“A ∩ B”). Ou seja, resulta em uma tabela que traz os valores que estão em
ambas as tabelas iniciais.
A cláusula INNER JOIN compara cada linha da tabela A com as linhas da tabela
B para encontrar todos os pares de linhas que satisfazem a condição de junção. Se
a condição de junção for avaliada como TRUE, os valores da coluna das linhas
correspondentes das tabelas A e B serão combinados em uma nova linha e incluídos
no conjunto de resultados
As letras “A” e “B” são aliases (apelidos) que auxiliam nessa identificação.
3
Capítulo 6 – BANCO DE DADOS
_______________________________________________________________________________________________________________________________________________________
EXERCICIO 1:
select *
from produto as a
inner join categoria as b
on a.id_subcategoria = b.id_subcategoria;
4
Capítulo 6 – BANCO DE DADOS
_______________________________________________________________________________________________________________________________________________________
EXERCICIO 2:
• aln_codigo é PK;
• codigo_endereco não pode ser “not null”. Ao inserir alguns dados não
iremos informar o codigo_endereco;
• codigo_endereco é FK para end_codigo da tabela “endereco”.
• colocar o código de endereço.
end_codigo é PK.
5
Capítulo 6 – BANCO DE DADOS
_______________________________________________________________________________________________________________________________________________________
EXERCICIO 2: Continuação
create database dados;
use dados;
insert into endereco values (default, 'rua das margaridas', '23', 'jardins', 'Ribeirao Preto', 'SP');
insert into endereco values (default, 'rua das rosas', '40', 'jardins', 'Belo Horizonte', 'MG');
insert into endereco values (default, 'rua das amoreiras', '1086', 'frutal', 'Ribeirao Preto', 'SP');
insert into endereco values (default, 'av. eixão', '1506', 'centro', 'Brasilia', 'DF');
select *
from alunos as a
inner join endereco as b
on a.codigo_endereco = b.end_codigo;
select *
from alunos as a
6
Capítulo 6 – BANCO DE DADOS
_______________________________________________________________________________________________________________________________________________________
INNER JOIN
LEFT JOIN
7
Capítulo 6 – BANCO DE DADOS
_______________________________________________________________________________________________________________________________________________________
RIGHT JOIN