Buscar

Banco de Dados I-Outer Join-AutoRel

Prévia do material em texto

Fatec Sorocaba Banco de Dados I 
Prof. Cristiane Palomar Mercado 
 
Banco de Dados I 
Outer Join 
Mostra todas as linhas de uma tabela, mesmo quando elas não satisfazem a condição de 
junção. 
O Outer Join pode ser assinalado no lado direito ou no lado esquerdo; 
Se for usado left outer join todas as linhas da tabela à esquerda são incluídas no 
resultado. 
Se fosse usado right outer join, a tabela à direita mostraria todas as linhas e a tabela à 
esquerda, apenas as relacionadas. 
Se for usado full outer join, todas as linhas de ambas as tabelas são incluídas, mesmo 
as que não estão relacionadas com a outra tabela. 
Exemplo: 
 
select nomecidade,nomeestado 
from estado right outer join cidade 
 on estado.cdestado = cidade.cdestado 
 
 
 
SELECT * FROM ITENSPEDIDOS LEFT OUTER JOIN DESCRICAOMATERIAL ON 
 ITENSPEDIDOS.COD_DESCRICAO = DESCRICAOMATERIAL.COD_DESCRICAO 
 INNER JOIN MATERIAIS ON 
ITENSPEDIDOS.COD_MATERIAL = MATERIAIS.COD_MATERIAL 
 WHERE [ITENSPEDIDOS].[COD_PED] = 2 
 
Auto-Relacionamento 
 
 
 
Fatec Sorocaba Banco de Dados I 
Prof. Cristiane Palomar Mercado 
 
Às vezes é necessário unir uma tabela a ela mesma. Para localizar o nome do gerente de 
cada funcionário, é preciso unir a tabela Empregado a ela mesma ou executar uma 
autojunção. 
Por exemplo: 
Para consultar o nome do gerente do Paulo é necessário: 
 - localizar Paulo na tabela de empregado. 
 - Localizar o número do gerente de Paulo. 
 - Localizar o nome do gerente através do seu número. 
Neste processo, é necessário consultar a tabela duas vezes. 
select funcionário.nome+’trabalha para’+gerente.nome 
from empregado funcionario, empregado gerente 
where funcionário.idGerente = gerente.idfuncionario 
E exemplo acima une a tabela EMPREGADO a ela mesmo. Para simular duas tabelas 
na cláusula FROM há dois apelidos, funcionário e gerente para a mesma tabela. 
Neste exemplo, a cláusula WHERE contém a junção que significa “onde o número do 
gerente do empregado corresponde ao número do funcionário referente ao gerente”. 
 
Bibliografia 
Greenberg Nancy, Nathan Priya, Learn Oracle from Oracle. Introdução ao Oracle 9i: SQL. 
Oracle University. 2002. 
Munari, Antonio Cesar. Apostila Sql em Ambiente Oracle. 
Bernardo, Antonio Sérgio. Apostila Banco de Dados Relacional, SqlServer e Projeto de Banco 
de Dados. 2011. 
http://msdn.microsoft.com/pt-br/library. Acesso em 23/09/2012.

Continue navegando