Você está na página 1de 3

Cliente (CodCli, nome, idade)

Produto (CodProd, descrição)

Pedido (CodCli, numPedido, data)


CodCli referencia Cliente

ItemPedido (numPedido, numItem, CodProd, Quant, PrecoUnit)


numPedido referencia Pedido
CodProd referencia Produto

1- Escreva os comandos SQL para criar as tabelas ItemPedido, Produto e Pedido,


incluindo as restrições de integridade que se aplicam.
2- Assuma que, ao excluir um pedido, todos os itens de pedido relacionados devem ser
excluídos automaticamente.
3- Assuma também que um produto não pode ser excluído caso exista algum item de
pedido relacionado a ele.
4- Além disso, ao alterar o código de um produto, todos os itens de pedido
relacionados devem ser alterados automaticamente.
5- Em um pedido, assuma que a quantidade não pode ser nula. Se, por algum motivo,
não for possível definir alguma restrição de integridade, justifique.

Resposta:
create table cliente (
codcli varchar(10), 
nome varchar(255),
idade int, 
PRIMARY KEY (codcli) );

create table produto (


codprod varchar(10),
descricao varchar (255),
PRIMARY KEY(codprod) ) ;

create table pedido (


codcli varchar(10),
numpedido varchar(10),
data date,
PRIMARY KEY (numpedido)
FOREIGN KEY (codicil) REFERENCES cliente(codcli)) ;

create table itempedido (


numpedido varchar(10),
numitem varchar(10),
codprod varchar(10),
quant int NOT NULL,
precounit double,
FOREIGN KEY numpedido REFERENCES pedido(numpedido) ON DELETE
CASCADE,
FOREIGN KEY codprod REFERENCES produto(codprod) ON UPDATE
CASCADE);

6- Escreva comandos SQL para incluir um novo pedido no banco de dados, com os
seguintes dados: Pedido número 123, do cliente 02 (assuma que o cliente já está
cadastrado). Os itens do pedido são: (a) 2 unidades do produto de código 02, custando
1,00 cada unidade e (b) 3 unidades do produto de código 03, custando 2,30 cada
unidade
Insert into pedido (“02”, 123, “15/06/2022”);
Insert into pedido (“03”, 123, “15/06/2022”);
Insert into numpedido (123, “”,”02”,2,1.00)
Insert into numpedido (123, “”,”03”,3,2.30)

7- Escreva um comando SQL para excluir todos os pedidos do cliente João da Silva.
delete from pedido
where pedido.codcli in
(select cliente.codcli
from cliente
where cliente.nome=”Joao da Silva”)

8- Faça uma consulta SQL que seleciona os nomes dos clientes com mais de 30 anos
que fizeram algum pedido entre 01/01/2000 e 01/01/2002.
Select cliente.nome
From cliente, pedido
Where cliente.codcli = pedido.codcli and
pedido.data >= “01/01/2000” and pedido.data <= “01/01/2022”
9- Faça uma consulta SQL que retorna o valor total do pedido número 111.
Select sum(precounit)
from itempedido
where itempedido.numpedido=111

10- Faça uma consulta SQL que retorna o nome do cliente e a descrição de produtos
que o cliente pediu em quantidade superior a 10 unidades.

Select cliente.nome, produto.descricao


From cliente, produto, itempedido
Where produto.codprod = itempedido.codprod and
produto.codcli = cliente.codcli and
itempedido.quant > 10

11- Faça uma consulta SQL que retorne os nomes dos clientes que nunca fizeram
nenhum pedido
Select cliente.nome
From cliente
Where cliente.codcli not in (
Select pedido.codcli
from pedido)

12- Faça uma consulta SQL que mostre o número do pedido, o código do produto e a
quantidade solicitada de produtos cuja descrição contenha a palavra “novidade”.

Select pedido.numpedido, produto.codprod, itempedido.quant


from pedido, produto, itempedido
where itempedido.numpedido = pedido.numpedido and
itempedido.codprod = produto.codprod and
produto.descricao like “%novidade%”

Você também pode gostar