Sobre esta base de dados, resolver as consultas a seguir usando SQL. Não utilize mais tabelas que o
necessário nas consultas.
SELECT *
FROM cliente;
SELECT produto_nome
FROM produto;
3. Selecionar todas as combinações de cidade, estado e CEP dos clientes registrados sem repetição.
5. Selecionar todos os pedidos cujo valor total seja menor que 100,00 ou maior que 500,00.
SELECT *
FROM pedido
WHERE pedido_valor_total < 100 OR pedido_valor_total > 500;
SELECT *
FROM pedido
WHERE pedido_data_entrada = 04/12/2012
7. Selecionar todos os pedidos cuja data de entrada seja igual a 02/12/1999 e cujo valor total esteja
entre 20,00 e 50,00.
SELECT *
FROM pedido
WHERE (pedido_valor_total BETWEEN 20 AND 50)
AND pedido_data_entrada = 02/12/1999;
SELECT *
FROM cliente
WHERE cliente_id NOT BETWEEN 5 AND 25;
SELECT *
FROM produto
WHERE produto_nome LIKE 'P%';
10. Selecionar todos os produtos cujo nome possua o trecho 'an' em qualquer posição do nome.
SELECT *
FROM produto
WHERE produto_nome LIKE '%an%';
11. Selecionar todos os produtos cujo nome comece com C ou F ou M, independente do resto.
SELECT *
FROM produto
WHERE produto_nome LIKE 'C%'
OR produto_nome LIKE 'F%'
OR produto_nome LIKE 'M%' ;
SELECT *
FROM cliente
WHERE estado_codigo IN('MG','ES');
13. Selecionar todos os clientes cujo estado NAO seja “RJ” nem “SP”.
SELECT *
FROM cliente
WHERE estado_codigo <> 'RJ'
AND estado_codigo <> 'SP';
14. Selecionar todos os produtos cujo preço seja menor que 20,00 e a unidade de estoque seja
‘kilograma’ ou ‘litro’.
SELECT *
FROM produto
WHERE produto_preco < 20
AND ue_produto_cod IN (SELECT ue_produto_cod FROM ue_produto
WHERE ue_produto_descr = 'kilograma'
OR ue_produto_descr = 'litro');
15. Selecionar todos os produtos cuja unidade de estoque seja ‘KG’ ou ‘UM’ e o preço seja maior que
10,00.
SELECT *
FROM produto
WHERE produto_preco > 10
AND (ue_produto_codigo = 'KG' OR ue_produto_codigo = 'UM');
16. Selecionar todos os produtos cujo preço seja menor que 5,00, incluindo os produtos cujo preço
esteja nulo.
SELECT *
FROM produto
WHERE produto_preco < 5 OR produto_preco is null;
17. Selecionar código do cliente, nome do cliente e data de entrada dos pedidos por ordem descendente
de data de entrada, usando renomeação de tabela.
SELECT t1.cliente_id, t1.cliente_nome, t2.pedido_data_entrada
FROM cliente AS t1, pedido AS t2
WHERE t1.cliente_id = t2.cliente_id
ORDER BY t2.pedido_data_entrada DESC;
22. Obter o somatório do valor total das vendas da tabela pedido no período de 02/12/1999 até
04/12/1999.
23. Obter a média do valor total das vendas da tabela pedidos do ano de 1999.
26. Mostrar a quantidade de clientes por Unidade Federativa para clientes com desconto maior que
10%.
27. Mostrar código, nome dos produtos e valor total pedido por produto, dos produtos que já foram
pedidos, classificando por nome do produto descendente selecionando somente os itens cuja soma total
pedido por produto seja maior que 80,00, usando renomeação de campos.
28. Mostrar código do pedido, código e nome do cliente, código e nome do produto e descrição da
unidade de estoque do produto de todos os produtos que já foram comprados.
29. Mostrar os dados dos produtos para os quais ainda não foi feito pedido.
30. Mostrar código, nome e preço dos produtos cujo preço do produto seja maior que a média de preço
de todos os produtos.
Questão 2 Considere o seguinte esquema relacional, onde as chaves primárias estão sublinhadas.
João era um aluno que sabia bastante álgebra relacional, porém não conhecia muito SQL. Ele elaborou
várias consultas em álgebra relacional e precisa de ajuda para “traduzi-las” para SQL. Você pode ajudar o
João? Para cada uma das expressões abaixo apresentadas, informe a consulta SQL equivalente.
Questão 3 Sobre a base de dados da questão anterior, resolver as consultas utilizando SQL. Não usar
mais tabelas que o estritamente necessário.
(a) Quais os nomes dos empregados que ganham um salário menor que 2.000,00.
SELECT fnome FROM Funcionario
WHERE salario < 2000;
(b) Quais os nomes dos departamentos que possuem empregados que ganham salário até
1.500,00.
SELECT dnome FROM Funcionario f, Departamento d
WHERE f.did = d.did
AND f.salario < 1500;
Questão 4 Considere a seguinte base de dados, usada por uma empresa de computadores (Dell, HP, por
exemplo) e que disponibiliza manutenção de computadores e upgrades. As chaves primárias estão
sublinhadas.
data_executada)
Sobre a base de dados acima apresentada, resolver as consultas a seguir usando SQL.
(a) Escreva uma instrução SQL para inserir um computador de número de série M4N68T-M, modelo
igual a Acer Aspire , e CPF igual a 1010. [0.2 ponto]
INSERT INTO COMPUTADOR (no_serie, modelo, cpf)
VALUES (“M4N68T-M”, “Acer Aspire”, “1010”)
(b) Escreva uma instrução SQL para excluir a tabela Cliente. [0.2 ponto]
(c) Faça uma consulta SQL que retorna o nome e cpf de clientes que possuem algum computador
cadastrado. O resultado deve estar ordenado pelo nome do cliente. [0.2 ponto]
(d) Faça uma consulta SQL que retorna a descrição das peças que foram usadas no upgrade do
computador de número de série M4N68T-M. [0.2 ponto]
SELECT p.descricao_peca
FROM Peca p, Peca_Upgrade_Revisao pur
WHERE p.cod_peca = pur.cod_peca
AND pr.no_serie = “M4N68T-M”
(e) Faça uma consulta SQL que retorna o nome, o cpf do cliente e a quantidade de computadores que
fazem revisão ou upgrade na empresa. [0.2 ponto]