Buscar

GABEX2AULA6 IBD

Prévia do material em texto

Faça .conexão na interface Web do Oracle com o usuário SuperSport e executar os 
comandos SQL solicitados. 
 
Cada comando você deve ser escrito duas vezes, uma na Sintaxe Ansi e outra na 
Sintaxe Tradicional 
 
 
Dar os comando de outer join abaixo 
 
 
Ex1 - mostrar os nomes de todos os clientes e a identificação e o último nome do 
representante de vendas que atende cada um, ordenados pelo nome do cliente. Existem 
clientes que não têm um representante de vendas os atendendo. 
• Dica: para solucionar problemas desse tipo imaginar a existência de uma linha fictícia 
totalmente nula na tabela Empregado, para que ela seja associada às linhas da tabela Cliente 
que não tenham representantes de vendas. 
 
TRADICIONAL 
 
SELECT c_cliente.nome, c_empr.id,c_empr.ult_nome 
FROM c_cliente,c_empr 
WHERE c_cliente.id_repr_vendas = c_empr.id (+) 
ORDER BY c_cliente.nome; 
 
 
ANSI 
 
Select c.nome, e.id, e.ult_nome 
from c_cliente c left join c_empr e 
on c.id_repr_vendas = e.id 
 
 
Ex2 - mostrar os nomes de todos os clientes e os números de suas faturas. Existem 
clientes que não têm faturas. 
 
TRADICIONAL 
 
SELECT c_cliente.nome, c_fatura.id 
FROM c_fatura,c_cliente 
WHERE c_fatura.id_cliente (+) = c_cliente.id 
ORDER BY c_cliente.nome 
 
ANSI 
 
Select c.nome, f.id 
from c_fatura f right join c_cliente c 
on c.id = f.id_cliente 
 
 
 
 
 
Ex3 - mostrar os nomes e as situações de crédito dos clientes que não têm faturas. 
 
 
TRADICIONAL 
 
SELECT c_cliente.id,c_cliente.nome, c_cliente.sit_cred 
FROM c_cliente, c_fatura 
WHERE c_cliente.id = c_fatura.id_cliente (+) 
AND c_fatura.id IS NULL; 
 
ANSI 
 
Select c.nome, c.sit_Cred 
from c_fatura f right join c_cliente c 
on c.id = f.id_cliente 
where f.id is null 
 
 
 
Dar os comando de SELF join abaixo 
 
Ex4 - mostrar a hierarquia da SuperSports apresentando o último nome de cada gerente 
e de seu subordinado direto, colocando os cabeçalhos Gerente e Subordinado, 
respectivamente. 
 
TRADICIONAL 
 
SELECT gerente.ult_nome GERENTE,subordinado.ult_nome SUBORDINADO 
FROM c_empr gerente, 
 c_empr subordinado 
WHERE subordinado.id_gerente = gerente.id; 
 
ANSI 
 
SELECT gerente.ult_nome GERENTE,subordinado.ult_nome SUBORDINADO 
FROM c_empr gerente INNER JOIN c_empr subordinado 
WHERE subordinado.id_gerente = gerente.id; 
 
 
 
 
 
Ex5 - mostrar o último nome de cada empregado e de seu gerente, ordenados por 
último nome do empregado, colocando os cabeçalhos Empregado e Empregado-Gerente. 
 
TRADICIONAL 
 
SELECT subordinado.ult_nome EMPREGADO, 
gerente.ult_nome "EMPREGADO-GERENTE" 
FROM c_empr gerente, c_empr subordinado 
WHERE subordinado.id_gerente = gerente.id 
ORDER BY subordinado.ult_nome 
 
 
ANSI 
 
 
SELECT subordinado.ult_nome EMPREGADO, gerente.ult_nome "EMPREGADO-GERENTE" 
FROM c_empr gerente INNER JOIN c_empr subordinado 
ON subordinado.id_gerente = gerente.id 
ORDER BY subordinado.ult_nome 
 
 
Ex6 - mostrar o último nome de todos empregados e de seus gerentes, ordenados por 
último nome do empregado, colocando os cabeçalhos Empregado e Empregado-Gerente. 
Um empregado pode não ter gerente. 
 
TRADICIONAL 
 
SELECT s.ult_nome EMPREGADO, g.ult_nome "EMPREGADO-GERENTE" 
FROM c_empr g, c_empr s 
WHERE s.id_gerente = g.id (+) 
ORDER BY s.ult_nome 
 
 
ANSI 
 
 
SELECT s.ult_nome EMPREGADO, g.ult_nome "EMPREGADO-GERENTE" 
FROM c_empr g RIGHT JOIN c_empr s ON s.id_gerente = g.id (+) 
ORDER BY s.ult_nome

Outros materiais

Materiais relacionados

19 pág.
42 pág.
49 pág.

Perguntas relacionadas

Perguntas Recentes