Baixe o app para aproveitar ainda mais
Prévia do material em texto
Banco de Dados (BD1) 2021.1 Prof Sérgio Lifschitz E-mail: sergio@inf.puc-rio.br URL: http://home.ead.puc-rio.br/ Atendimento: Zoom / Discord Lista de Exercícios 7: SQL DML consultas Soluções Propostas BASE CARROS 1. Quais revendedoras não vendem automóveis de origem francesa? SELECT CGC, Nome, Cidade, Estado FROM Revendedoras WHERE CGC not in (SELECT G.CGC FROM Automoveis A, Garagens G WHERE A.Codigo = G.Codigo AND A.Pais = 'Franca'); 2. Listar código, fabricante, modelo e ano dos carros que são colocados à venda em pelo menos uma revendedora. ➔ Exemplo de uso do EXISTS! Poderia ser solução direta por junção interna! SELECT Codigo, Fabricante, Modelo, Ano FROM Automoveis A WHERE exists (SELECT 1 -- podia ser * ou qualquer coisa, não importa o que retorna ou “exibe” FROM Garagens WHERE Codigo = A.Codigo AND Ano = A.Ano) 3. Quais são os nomes e sobrenomes dos consumidores que ainda não compraram carro algum? SELECT nome, sobrenome FROM consumidores WHERE cpf NOT IN (SELECT cpf FROM negocios ) 4. Qual o automóvel (fabricante, modelo e ano) mais barato à venda nas revendedoras? SELECT fabricante, modelo, A1.ano FROM Automoveis as A1, Garagens as G1 WHERE A1.codigo = G1.codigo AND A1.ano = G1.ano AND Preco_tabela <=ALL ( SELECT Preco_tabela FROM Automoveis as A2, Garagens as G2 WHERE A2.codigo = G2.codigo AND A2.ano = G2.ano ) Banco de Dados (BD1) 2021.1 Prof Sérgio Lifschitz E-mail: sergio@inf.puc-rio.br URL: http://home.ead.puc-rio.br/ Atendimento: Zoom / Discord BASE EMPRESA 5. Apresentar os nomes de todos os empregados que não têm dependente. SELECT nome FROM EMPREGADO WHERE Ident NOT IN (SELECT IdentEmp FROM DEPENDENTE) 6. Listar todos os empregados que moram em cidades cujo nome começa por “São”. SELECT * FROM EMPREGADO WHERE ENDERECO LIKE ‘São%’ 7. Apresentar o resultado dos salários dos empregados que trabalham no projeto “Reengenharia” caso fosse dado um aumento de 10%. SELECT EMPREGADO.NOME, 1.1*SAL AS SALARIOmais10porcento FROM EMPREGADO, TRABALHANO, PROJETO WHERE EMPREGADO.IDENT = TRABALHANO.IDENTEMP AND TRABALHANO.PROJNUM = PROJETO.NUM AND PROJETO.NOME = 'Reengenharia'; 8. Qual(is) empregado(s) não tem (têm) superior imediato? SELECT NOME FROM EMPREGADO WHERE SUPERIDENT IS NULL 9. Listar todos os locais onde se encontram departamentos da empresa ou onde são realizados projetos. ( SELECT Local FROM PROJETO ) UNION -- ou UNION ALL ( SELECT Local FROM DEPLOC )
Compartilhar