Você está na página 1de 22

Período letivo – 2018.

Programação de Banco de Dados

Aula - Junção horizontal


de dados

Profa. Msc. Marta Barreiros Ciência da Computação


Período letivo – 2018.2

Contextualização
❑Um hospital atende pelo plano de
saúde, e possuí um banco de dados que
contém a relação de todos os pacientes.

❑Além da tabela com os dados do


paciente, em que consta qual é o seu
plano de saúde, há também uma tabela
das condições do plano de saúde, por
exemplo, se prevê quarto individual ou
enfermaria, ou, ainda, a cobertura de
exames.

Profa. Marta Barreiros Ciência da Computação


Período letivo – 2018.2

Junção Horizontal
• É usado em consultas SQL que requer dados de duas ou mais
tabelas.

• Esta é a operação que na prática tira partido do conceito "base de dados


relacional" pois permite mostrar os dados que estão armazenados em
diferentes tabelas como se estivessem armazenados numa única, desde que
essas tabelas possuam um relacionamento entre si.

• A tabela resultado é construída a partir de uma das tabelas originais,


acrescentando colunas da segunda tabela, o que corresponde a um
crescimento horizontal.

Profa. Marta Barreiros Ciência da Computação


Período letivo – 2018.2

Junção Horizontal
• Segundo Silberschatz (2010), as condições para se efetuar
uma junção dependem diretamente do tipo de junção e de
uma condição de junção, dessa forma, com o SQL, será
possível retornar relações como resultados.
• A Junção:
• sendo dividido em relação interna, com o comando INNER JOIN,
• e relações externas, LEFT JOIN, RIGHT JOIN e FULL JOIN.

Profa. Marta Barreiros Ciência da Computação


Período letivo – 2018.2

Exemplo Loja

DER de exemplo das Junções

Profa. Marta Barreiros Ciência da Computação


Período letivo – 2018.2

Script de Exemplo
• Acesse a pagina: http://dontpad.com/DB_0910

Profa. Marta Barreiros Ciência da Computação


Período letivo – 2018.2

Inserts de Exemplo
• Acesse a pagina: http://dontpad.com/DB_0910

Profa. Marta Barreiros Ciência da Computação


Período letivo – 2018.2

Resultado Simples das tabelas


• Acesse a pagina: http://dontpad.com/DB_0910

select * from Categoria; select * from Produto;

Profa. Marta Barreiros Ciência da Computação


Período letivo – 2018.2

Parâmetro JOIN
• Segundo Milani (2007), com a utilização do comando JOIN (Junção) é
possível, por meio do SELECT, unir duas ou mais tabelas, ao se
apontar os campos correspondentes entre elas.
• Uma premisa para se garantir a eficiência em sua utilização é a
necessidade de que as tabelas existentes no banco de dados estejam
normalizadas.

SELECT[campo] FROM [tabela_1>JOIN<tabela_2]


ON [tabela_1].[chave_primária] = [tabela_2].[chave_estrangeira]
WHERE [condição];

Profa. Marta Barreiros Ciência da Computação


Período letivo – 2018.2

INNER JOIN
• A junção interna é uma operação de junção horizontal entre duas
tabelas, que usa uma comparação por igualdade entre a(s) coluna(s)
comum(ns).
• Normalmente a(s) coluna(s) comum(ns) é(são) Foreign Key numa
tabela e Primary Key ou Unique Key na outra.

Profa. Marta Barreiros Ciência da Computação


Período letivo – 2018.2

INNER JOIN
• O Inner Join é o método de junção mais conhecido e retorna os
registros que são comuns às duas tabelas.

Profa. Marta Barreiros Ciência da Computação


Período letivo – 2018.2

INNER JOIN
• Adicione no banco de dados o comando a seguir:

SELECT categoria.nome, produto.nome FROM


Categoria
INNER JOIN
Produto
ON Categoria.Id = Produto.Id_Categoria;

Profa. Marta Barreiros Ciência da Computação


Período letivo – 2018.2

INNER JOIN
• Adicione no banco de dados o comando a seguir:

SELECT categoria.nome as "Tipo", produto.nome as


"Produto",
produto.valor FROM Categoria INNER JOIN Produto
ON Categoria.Id = Produto.Id_Categoria
Whereproduto.valor< 50.00;

Profa. Marta Barreiros Ciência da Computação


Período letivo – 2018.2

JUNÇÃO EXTERNA
• Segundo Silberschatz (2010), quando o operador de junção externa
for utilizado no SQL, é gerado o resultado da junção mais as linhas
não combinadas.
• É possível efetuar junções externas em ambos os lados, ou seja, da
esquerda para a direita, e da direita para a esquerda, dessa forma, a
junção externa, independentemente do lado escolhido, gera uma
nova tabela, que é a junção das linhas combinadas e não
combinadas.

Profa. Marta Barreiros Ciência da Computação


Período letivo – 2018.2

LEFT JOIN
• Conforme afirma Silberschatz (2010), no comando LEFT JOIN, as
linhas da tabela da esquerda são projetadas na seleção juntamente
com as linhas não combinadas da tabela da direita.
• Ou seja, como resultado dessa seleção, algumas linhas em que não
haja relacionamento entre as tabelas da esquerda para a direita
retornarão o valor nulo (NULL);

Profa. Marta Barreiros Ciência da Computação


Período letivo – 2018.2

LEFT JOIN
• O Left Join tem como resultado todos os registros que estão na
tabela A (mesmo que não estejam na tabela B) e os registros da
tabela B que são comuns à tabela A.

Profa. Marta Barreiros Ciência da Computação


Período letivo – 2018.2

LEFT JOIN
• Adicione no banco de dados o comando a seguir:

SELECT categoria.nome as "Tipo", produto.nome as "Produto",


produto.valor FROM Categoria LEFT JOIN Produto
ON Categoria.Id = Produto.Id_Categoria;

Profa. Marta Barreiros Ciência da Computação


Período letivo – 2018.2

RIGHT JOIN
• Conforme afirma Silberschatz (2010), similar ao comando LEFT JOIN,
com o comando RIGHT JOIN as linhas da tabela da direita são
projetadas na seleção juntamente com as linhas não combinadas da
tabela da esquerda.

Profa. Marta Barreiros Ciência da Computação


Período letivo – 2018.2

RIGHT JOIN
• Usando o Right Join teremos como resultado todos os registros que
estão na tabela B (mesmo que não estejam na tabela A) e os
registros da tabela A que são comuns à tabela B.

Profa. Marta Barreiros Ciência da Computação


Período letivo – 2018.2

RIGHT JOIN
• Adicione no banco de dados o comando a seguir:

SELECT categoria.nome as "Tipo", produto.nome as “Produto",


produto.valor FROM Categoria RIGHT JOIN Produto
ON Categoria.Id = Produto.Id_Categoria;

Profa. Marta Barreiros Ciência da Computação


Período letivo – 2018.2

OUTER JOIN
• O Outer Join (também conhecido por Full Outer Join ou Full Join) tem
como resultado todos os registros que estão na tabela A e todos os
registros da tabela B.

Profa. Marta Barreiros Ciência da Computação


Período letivo – 2018.2

Inserts de Exemplo

Profa. Marta Barreiros Ciência da Computação

Você também pode gostar