Um cliente solicitou sua empresa a criação de um banco de dados para armazenar os pedidos de uma lanchonete. A solicitação engloba o cadastro produtos, seus respectivos preços e tipos, além do cadastro dos clientes e a forma de pagamento de cada pedido. Após a reunião da equipe de analistas o seguinte DER (diagrama de entidade e relacionamento) foi elaborado como representação dos requisitos obtidos com o cliente:
As tabelas a seguir contêm os dados dos pedidos:
Chaves e Referências:
Tabela TIPO_PRODUTO:
- ID é chave primária.
Tabela TIPO_PAGTO:
- ID é chave primária.
Tabela PRODUTOS:
- ID é chave primária.
- ID_TIPO_PRODUTO é chave estrangeira e referencia ID da tabela TIPO_PRODUTO.
Tabela PEDIDOS:
- ID é chave primária.
- ID_TIPO_PAGTO é chave estrangeira e referencia ID da tabela TIPO_PAGTO.
Tabela PEDIDOS_PRODUTOS:
- ID é chave primária.
- ID_PEDIDO é chave estrangeira e referencia ID da tabela PEDIDOS.
- ID_PRODUTO é chave estrangeira e referencia ID da tabela PRODUTOS.
Com base nas informações descritas no DER e analisando as tabelas realize as seguintes atividades:
1) Crie uma consulta SQL retornando o ID do PEDIDO, a DESCRIÇÃO DO PRODUTO, a QUANTIDADE, VALOR UNITÁRIO e o VALOR TOTAL.
2) Crie uma consulta retornando o ID do PRODUTO, a DESCRIÇÃO DO PRODUTO e a DESCRIÇÃO DO TIPO DE PRODUTO.
3) Crie o comando que altere o valor de todos os produtos em 20%.
4) Crie os comandos DML que insira novos Produtos com as seguintes características:
5) Crie os comandos DML que insira novos Pedidos com as seguintes características:
6) Crie uma consulta com a descrição do produto de maior valor.
7) Crie os comandos SQL que apague apenas os registros das tabelas PEDIDOS_PRODUTOS, PEDIDOS e PRODUTOS.
8) Crie o comando que apague completamente os registros e a estrutura da tabela TIPO_PAGTOS.
Para esta atividade, você deve utilizar um software editor de texto no qual fará o desenvolvimento do seu trabalho. Esse arquivo deverá ser anexado no momento do envio. Muita atenção para enviar o arquivo correto, visto que o envio poderá ser feito uma única vez! Envie no formato doc ou pdf.
Soluções para a tarefa
'''1) Crie uma consulta SQL retornando o ID do PEDIDO, a DESCRIÇÃO DO PRODUTO, a QUANTIDADE, VALOR UNITÁRIO e o VALOR TOTAL.'''
SELECT PED.id, PROD.DESCRIÇÃO, PP.qtde, PP.valor_unit, PP.VALOR_TOTAL
FROM PEDIDOS PED, PRODUTOS PROD, PEDIDOS_PRODUTOS PP;
'''2) Crie uma consulta retornando o ID do PRODUTO, a DESCRIÇÃO DO PRODUTO e a DESCRIÇÃO DO TIPO DE PRODUTO.'''
SELECT PROD.ID, PROD.DESCRIÇÃO, TP.DESCRIÇÃO
FROM PRODUTOS PROD, TIPO_PRODUTO TP;
'''3) Crie o comando que altere o valor de todos os produtos em 20%.'''
UPDATE PRODUTOS SET VALOR =17.00 - (17 * 0.2) WHERE ID=1;
UPDATE PRODUTOS SET VALOR =5.00 - (5 * 0.2) WHERE ID=2;
UPDATE PRODUTOS SET VALOR =7.00 - (7 * 0.2) WHERE ID=3;
UPDATE PRODUTOS SET VALOR =7.50 - (7.5 * 0.2) WHERE ID=4;
UPDATE PRODUTOS SET VALOR =8.00 - (8 * 0.2) WHERE ID=5;
UPDATE PRODUTOS SET VALOR = 6.00 - (6 * 0.2) WHERE ID=6;
UPDATE PRODUTOS SET VALOR = 7.00 - (7 * 0.2) WHERE ID=7;
UPDATE PRODUTOS SET VALOR = 7.00 - (7 * 0.2) WHERE ID=8;
'''4) Crie os comandos DML que insira novos Produtos com as seguintes características:'''
INSERT INTO PRODUTOS(ID, DESCRIÇÃO, VALOR, ID_TIPO_PRODUTO)
VALUES (9, "QUIBE", 5.00, 1);
INSERT INTO PRODUTOS(ID, DESCRIÇÃO, VALOR, ID_TIPO_PRODUTO)
VALUES (10, "ALCOOL EM GEL 1L", 20.00, 2);
INSERT INTO PRODUTOS(ID, DESCRIÇÃO, VALOR, ID_TIPO_PRODUTO)
VALUES (11, "REFRIGERANTE 2L", 10.00, 1);
INSERT INTO PRODUTOS(ID, DESCRIÇÃO, VALOR, ID_TIPO_PRODUTO)
VALUES (12, "ALVEJANTE 5L", 12.00, 2);
'''5) Crie os comandos DML que insira novos Pedidos com as seguintes características: '''
INSERT INTO PEDIDOS(ID, DATA, ID_TIPO_PGTO, VALOR_TOTAL)
VALUES (4, "01/09/2020", 2, 16.00);
INSERT INTO PEDIDOS_PRODUTOS(ID, ID_PEDIDO, ID_PRODUTO, QTDE, VALOR_UNIT, VALOR_TOTAL)
VALUES (7, 4, 7, 1, 5.00, 5.00);
INSERT INTO PEDIDOS_PRODUTOS(ID, ID_PEDIDO, ID_PRODUTO, QTDE, VALOR_UNIT, VALOR_TOTAL)
VALUES (8, 4, 8, 2, 6.00, 12.00);
'''6) Crie uma consulta com a descrição do produto de maior valor.'''
SELECT DESCRIÇÃO, VALOR
FROM PRODUTOS
ORDER BY VALOR DESC
LIMIT 1;
#OU
SELECT DESCRIÇÃO, MAX(VALOR)
FROM PRODUTOS;
'''7) Crie os comandos SQL que apague apenas os registros das tabelas PEDIDOS_PRODUTOS, PEDIDOS e PRODUTOS.'''
DELETE FROM PEDIDOS_PRODUTOS
WHERE ID <= 20;
DELETE FROM PEDIDOS
WHERE ID <= 20;
DELETE FROM PRODUTOS
WHERE ID <= 20;
'''8) Crie o comando que apague completamente os registros e a estrutura da tabela TIPO_PAGTOS.'''
DROP TABLE TIPO_PGTO;
Alguns valores como: "where id <= 20"
No caso do "20" escolhi aleatoriamente por conta do número de produtos, pedidos e pedidos_produtos, se existisse um número superior a 20, colocaria valores maiores.
Creio que seja isto.