Baixe o app para aproveitar ainda mais
Prévia do material em texto
0 ATIVIDADE ESTRUTURADA 2: CONSULTAS - MUSEU DE OBRAS DE ARTE SOBRE COMPUTAÇÃO Consultas 1. Buscar o código e o título das obras de 1965 a 1975 que estão no salão 36. SELECT ob.codigo, ob.titulo FROM Obras ob INNER JOIN Saloes s ON ob.salao = s.numero WHERE ob.ano BETWEEN 1965 and 1975 AND s.numero = 36; 2. Buscar o código e o título das obras do autor Pablo Picasso que se encontram no terceiro andar do museu. SELECT ob.codigo, ob.titulo INNER JOIN Saloes s ON ob.salao = s.numero INNER JOIN Autores a ON ob.autor = a.codigo WHERE a.nome = ‘Pablo Picaso’ AND s.andar = 3; 3. Buscar o código e o título das obras impressionistas ou cujo material de fabricação é argila. SELECT ob.codigo, ob.titulo FROM Obras ob INNER JOIN Esculturas e ON ob.codigo = e.codigo INNER JOIN Pinturas p ON ob.codigo = p.codigo WHERE p.estilo = ‘Impressionista’ OR e.material = ‘Argila’; 4. Buscar o nome e a nacionalidade dos autores que possuem obras expostas no museu. a. Resolver este item utilizando subconsulta. SELECT a.nome, a.nacionalidade FROM Autores a WHERE a.codigo IN (SELECT ob.autor FROM Obras ob); b. Resolver este item utilizando junção SELECT a.nome, a.nacionalidade FROM Autores a INNER JOIN Obras ob ON a.codigo = ob.autor; 5. Buscar o nome e a nacionalidade dos autores que não possuem obras expostas no museu; a. Resolver este item utilizando subconsulta. SELECT a.nome, a.nacionalidade FROM Autores a WHERE a.codigo NOT IN (SELECT ob.autor FROM Obras ob); b. Resolver este item utilizando junção. SELECT a.nome, a.nacionalidade FROM Autores a INNER JOIN Obras ob ON a.codigo <> ob.autor; 6. Buscar o nome e a nacionalidade dos autores que possuem apenas pinturas. a. Resolver este item utilizando subconsulta. SELECT a.nome, a.nacionalidade FROM Autores a WHERE a.codigo IN (SELECT ob.autor FROM Obras ob WHERE ob.codigo = p.codigo); 1 b. Resolver este item utilizando junção. SELECT a.nome, a.nacionalidade FROM Autores a INNER JOIN Pinturas p ON ob.codigo = p.codigo; 7. Buscar o nome e a nacionalidade dos autores que possuem tanto pinturas quanto esculturas expostas no museu. a. Resolver este item utilizando subconsulta. SELECT a.nome, a.nacionalidade FROM Autores a WHERE a.codigo IN (SELECT ob.autor FROM Obras ob WHERE ob.codigo = e.codigo AND WHERE ob.codigo = p.codigo); b. Resolver este item utilizando junção. SELECT a.nome, a.nacionalidade FROM Autores a INNER JOIN Esculturas e ON ob.codigo = p.codigo INNER JOIN Pinturas p ON ob.codigo = e.codigo; 8. Buscar o nome e a nacionalidade dos autores que possuem ou apenas pinturas ou apenas esculturas expostas no museu. a. Resolver este item utilizando subconsulta. SELECT a.nome, a.nacionalidade FROM Autores a WHERE a.codigo IN (SELECT ob.codigo FROM Pinturas OR ob.codigo FROM Esculturas); b. Resolver este item utilizando junção. SELECT a.nome, a.nacionalidade FROM Autores a INNER JOIN Esculturas e ON ob.codigo = e.codigo OR INNER JOIN Pinturas p ON ob.codigo = p.codigo; 9. Utilizando apenas operadores de conjunto obtenha o código dos autores que: a. Não possuem obras expostas no museu. SELECT a.codigo FROM Autores a WHERE a.codigo NOT IN (SELECT ob.autor FROM Obras ob); b. Possuem apenas pinturas expostas no museu. SELECT a.codigo FROM Autores a WHERE a.codigo IN (SELECT ob.autor FROM Obras ob WHERE ob.codigo = p.codigo); c. Possuem apenas esculturas expostas no museu. SELECT a.codigo FROM Autores a WHERE a.codigo IN (SELECT ob.autor FROM Obras ob WHERE ob.codigo = e.codigo); d. Possuem tanto pinturas quanto esculturas expostas no museu. SELECT a.codigo FROM Autores a WHERE a.codigo IN (SELECT ob.autor FROM Obras ob WHERE ob.codigo = e.codigo AND ob.codigo = p.codigo); e. Possuem ou apenas pinturas ou apenas esculturas expostas no museu. SELECT a.codigo FROM Autores a WHERE a.codigo IN (SELECT ob.codigo FROM Pinturas OR ob.codigo FROM Esculturas); 2 10. Gerar uma relação que associa os pares de Seguranças diferentes que cuidam dos mesmos salões nos mesmos períodos (mesmos horários de entrada e saída), como exemplificado abaixo: SELECT * FROM Funcionarios f INNER JOIN Saloes s ON f.funcao = s.numero WHERE f.funcao = ‘Segurança’ AND l.horaentrada = s.numero FROM Lotacoes l; 11. Buscar o número dos salões onde estão expostas apenas esculturas. SELECT s.numero FROM Saloes s WHERE ob.codigo IN (SELECT e.codigo FROM Esculturas e); 12. Buscar o nome e o RG dos faxineiros que limpam todos os salões do quarto andar. SELECT f.nome, f.RG FROM Funcionarios f INNER JOIN Saloes s ON f.funcao = s.andar WHERE f.funcao = ‘Faxineiro’ AND s.andar = 4; 13. Buscar os autores brasileiros que possuem apenas esculturas. SELECT a.nome FROM Autores a INNER JOIN Esculturas e ON a.codigo = e.codigo WHERE a.nacionalidade = ‘Brasileiro’; 14. Buscar o nome e RG dos seguranças que cuidam apenas do salão 28. SELECT f.nome, f.RG FROM Funcionarios f INNER JOIN Saloes s ON s.salao = f.nome WHERE f.funcao = ‘Segurança’ AND numero = 28; 15. Buscar todos os dados do salão de maior área. SELECT * FROM Saloes s WHERE s.area = (SELECT MAX (s.area) FROM Saloes s); 16. Inserir um novo salão de Nº 70 no 20º andar com área de 121 m2. INSERT INTO Saloes (numero, andar, area) VALUES (‘70’, ‘20’, ‘121 m2’); 17. Transferir todas as obras do salão 51 para o salão 70 UPDATE Obras SET salao = '70' WHERE salao = ‘51’; 18. Eliminar todas as pinturas do autor Salvador Dali do cadastro. DELETE FROM Pinturas INNER JOIN Obras ob ON ob.codigo = a.codigo WHERE a.nome = ‘Salvador Dali’;
Compartilhar