Baixe o app para aproveitar ainda mais
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
Compartilhar