Você está na página 1de 2

Lista de Exercícios Banco de Dados

Entregar no dia da segunda prova (impresso).


Grupos de até 3 alunos.

Use as tabelas a seguir para resolver os exercícios 1 e 2:


Clientes (codcli, nome, endereço, cidade, fone)
Pizzas (codpizza, nome, descr, preco, disponivel, Promo) OBS: disponível = ‘S’ ou ‘N’ e Promo = ‘S’ ou ‘N’
Pedidos (numped, codcli, data, situacao) OBS: situacao = ‘X’ (em execução) ou ‘C’ (cancelado) ou ‘E’
(enviado) ou ‘R’ (recebido)
Itens_Pedidos (numped, codpizza, qtde, variação)

Resolva as consultas abaixo em SQL:


a) Mostre o nome, descrição, preço unitário e qtde das pizzas que compõe o pedido de código 987.
b) Liste o código e nome das pizzas que aparecem no pedido de número 25, juntamente com o código e nome
das pizzas que aparecem no pedido de número 11 com variação igual a “Sem Cebola”.
c) Forneça a descrição dos pedidos (número do pedido, data, código da pizza, descrição, preço unitário e
quantidade pedida) feitos pelo cliente de código 123.
d) Mostre o código e nome dos clientes que não realizaram nenhum pedido a partir de 01/01/11.
e) Exiba o código, nome das pizzas e a soma das qtdes pedidas de cada pizza a partir de 01/05/2011. Mostre
apenas as pizzas que tiveram mais que 10 unidades vendidas
f) Mostre o numero dos pedidos que contenham todas as pizzas de promoção (promo=’S’).
g) Remova todas as informações referentes à pizza ‘portuguesa’ (tabelas de itens_pedidos e pizzas). OBS: nome
da pizza = ‘Calabresa’
h) Atualize o preço das pizzas disponíveis (disponível=’S’) da seguinte forma:
- pizzas com preço maior ou igual a 15 reais devem ter 10% de desconto;
- pizzas com preço menor do que 15 reais devem ter 5% de desconto.
OBS: verifique a ordem das atualizações.
i) Insira os dados do cliente Gustavo G. Ladeira, de código 150, residente à Rua Bom Jesus, 100 em Mogi-
Mirim. Cadastre um pedido para ele com número 34, data 06/05/2011 e situação ‘X’. O pedido é de uma
pizza de código 11 na quantidade de 2 unidades e sem variação.

a- select nome , descr , preco , qtde


from pizzas p, itens_pedidos ip
where p.cod_pizza = ip.cod_pizza and
ip.numped = 11

b - select nome , descr


from pizzas p, itens_pedidos ip
where p.cod_pizza = ip.cod_pizza and
ip.numped = 25
union
select nome , descr
from pizzas p, itens_pedidos ip
where p.cod_pizza = ip.cod_pizza and ip.numped = 11 and ip.variacao = 'sem cebola'

c -select p.cod_pizza , ped.numped ,data , descr , preco , qtde


from pizzas p , pedidos ped , itens_pedidos ip , clientes cli
where ped.numped = ip.numped
and cli.codcli = ped.codcli
and p.cod_pizza = ip.cod_pizza
and cli.codcli = 163

d- select clientes.codcli , clientes.nome , pedidos.data


from clientes , pedidos
where clientes.codcli = pedidos.codcli and pedidos.data in (select pedidos.data
from pedidos
where
pedidos.data > '01/01/11' )

e-

f – select COUNT(itens_pedidos.qtde )
from itens_pedidos , pizzas
where itens_pedidos.cod_pizza = pizzas.cod_pizza and itens_pedidos.qtde > 10
and not exists( select pizzas.promo
from pizzas
where pizzas.promo = 's' and itens_pedidos.numped not IN (select numped
from pedidos
where
pedidos.numped = itens_pedidos.numped ) )

g-delete from itens_pedidos


where itens_pedidos.cod_pizza = 4

delete from pizzas


where pizzas.nome in (select p.nome from pizzas p
where p.nome = 'calabresa'

h- update pizzas
set preco = preco * 1.1
where pizzas.disponivel = 's'
and pizzas.preco >= 15

update pizzas
set preco = preco * 1.05
where pizzas.disponivel = 's'
and pizzas.preco < 15

i- insert into clientes


values (111 , 'Gustavo G Ladeira', 'Rua Bom Jesus, 100' , 'Mogi Mirim', '');

insert into pedidos


values (34 ,111, '06/05/2011', 'X' );

insert into itens_pedidos


values (34, 11, 2, '');

Você também pode gostar