Sie sind auf Seite 1von 8

ATPS PROGRAMAO EM BANCO DE DADOS

------------------------------------------ ETAPA 1 --------------------------------

-- Criando uma novo banco -create database Estoque -- Criando as tabelas e Definindo as Primary Keys -USE Estoque CREATE TABLE tb_PRODUTO (codigo_produto varchar(10) not null, descricao varchar(50)not null, unidade varchar(10) not null, categoria int not null, valor_unit decimal(10,2)not null, primary key (codigo_produto))

CREATE TABLE tb_CATEGORIA (codigo_categoria int not null, descricao varchar(50)not null, primary key (codigo_categoria))

CREATE TABLE tb_OCORRENCIAS (codigo_produto varchar(10) not null, descricao varchar(50)not null, unidade varchar(10) not null, categoria int not null, valor_unit decimal(10,2)not null, operacao varchar(40)not null, usuario_logado varchar(40), data_ocorrencia varchar(30))

-- Alterando a Foreng Key na Tabela tb_PRODUTO -ALTER TABLE tb_PRODUTO ADD CONSTRAINT FK_categoria FOREIGN KEY (categoria) REFERENCES tb_CATEGORIA (codigo_categoria)

-- POPULANDO A TABELA CATEGORIA --

INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT

INTO INTO INTO INTO INTO INTO INTO INTO

[ESTOQUE].[dbo].[tb_categoria]VALUES ('10','LATICINIO') [ESTOQUE].[dbo].[tb_CATEGORIA]VALUES ('20','CEREAIS') [ESTOQUE].[dbo].[tb_CATEGORIA]VALUES ('30','HIGIENE') [ESTOQUE].[dbo].[tb_CATEGORIA]VALUES ('40','PRESENTES') [ESTOQUE].[dbo].[tb_CATEGORIA]VALUES ('50','CAMA' ) [ESTOQUE].[dbo].[tb_CATEGORIA]VALUES ('60','PETSHOP') [ESTOQUE].[dbo].[tb_CATEGORIA]VALUES ('70','PERECIVEIS') [ESTOQUE].[dbo].[tb_CATEGORIA]VALUES ('80','ACOUGUE')

-- POPULANDO A TABELA PRODUTO --

INSERT INTO tb_PRODUTO VALUES INSERT INTO tb_PRODUTO VALUES INSERT INTO tb_PRODUTO VALUES INSERT INTO tb_PRODUTO VALUES INSERT INTO tb_PRODUTO VALUES INSERT INTO tb_PRODUTO VALUES INSERT INTO tb_PRODUTO VALUES INSERT INTO tb_PRODUTO VALUES INSERT INTO tb_PRODUTO VALUES INSERT INTO tb_PRODUTO VALUES INSERT INTO tb_PRODUTO VALUES INSERT INTO tb_PRODUTO VALUES INSERT INTO tb_PRODUTO VALUES INSERT INTO tb_PRODUTO VALUES INSERT INTO tb_PRODUTO VALUES INSERT INTO tb_PRODUTO VALUES INSERT INTO tb_PRODUTO VALUES INSERT INTO tb_PRODUTO VALUES INSERT INTO tb_PRODUTO VALUES INSERT INTO tb_PRODUTO VALUES INSERT INTO tb_PRODUTO VALUES INSERT INTO tb_PRODUTO VALUES INSERT INTO tb_PRODUTO VALUES INSERT INTO tb_PRODUTO VALUES INSERT INTO tb_PRODUTO VALUES INSERT INTO tb_PRODUTO VALUES INSERT INTO tb_PRODUTO VALUES INSERT INTO tb_PRODUTO VALUES INSERT INTO tb_PRODUTO VALUES INSERT INTO tb_PRODUTO VALUES COLORAMA','UNIDADE','30','1.00') INSERT INTO tb_PRODUTO VALUES

('1','LEITE EM PO','KG','10','1.20') ('2','LEITE LONGA VIDA','LITRO','10','2.30') ('3','LEITE ITAMBE','LITRO','10','2.50') ('4','LEITE PARMALAT','LITRO','10','3.00') ('5','QUEIJO','KG','10','7.50') ('6','REQUEIJAO ITAMBE','ML','10','5.00') ('7','QUALHADA','ML','10','5.50') ('8','YOGURTE','LITRO','10','4.50') ('9','LEITE CONDENSADO','KG','10','2.50') ('10','REQUEIJAO PARMALAT','KG','10','2.30') ('11','YAKUTE','LITRO','10','3.00') ('12','DANONINHO','LITRO','20','3.20') ('13','MUSSARELA REZENDE','KG','20','4.50') ('14','QUEIJO PRATO','KG','20','5.00') ('15','QUEIJO CANASTRA','KG','20','5.50') ('16','QUEIJO MINAS','KG','20','10.00') ('17','QUEIJO SUICO','KG','20','10.30') ('18','ARROZ TIA JU','KG','20','6.00') ('19','ARROZ CARRETEIRO','KG','20','6.50') ('20','ARROZ PILAO','KG','20','6.75') ('21','ARROZ RODADOR','KG','20','6.25') ('22','FEIJAO TIO JAO','KG','20','2.35') ('23','FEIJAO GMINAS','KG','20','4.00') ('24','FEIJAO PRETO','KG','20','4.10') ('25','FEIJAO BRANCO','KG','20','3.20') ('26','SABAO DE BARRA','UNIDADE','30','0.50') ('27','SABONETE VINOLIA','UNIDADE','30','0.75') ('28','SABONETE LUX','UNIDADE','30','0.80') ('29','SABONETE ORION','UNIDADE','30','0.95') ('30','SHAMPOO ('31','CONDICIONADOR ','UNIDADE','30','2.50')

-- PASSO 1 --

-- FAZENDO O SELECT DOS 6 REGISTROS, SENDO QUE LATICINIO O PRIMEIRO -SELECT TOP 6 codigo_categoria, descricao FROM tb_CATEGORIA GROUP BY codigo_categoria,descricao ORDER BY codigo_categoria asc

-- PASSO 1.1 --- FAZENDO O SELECT DE 15 REGISTROS, SENDO QUE 5 PERTENCEM A CATEGORIA 10 QUE LATICINIO O PRIMEIRO -SELECT TOP 5 codigo_produto, P.descricao,categoria,C.descricao FROM tb_PRODUTO P left join tb_CATEGORIA C on p.categoria = c.codigo_categoria WHERE p.categoria = 10 UNION ALL SELECT TOP 10 codigo_produto, P.descricao,categoria,C.descricao FROM tb_PRODUTO P left join tb_CATEGORIA C on p.categoria = c.codigo_categoria WHERE p.categoria <> 10

-- PASSO 2 --- FAZENDO O SELECT MOSTRANDO A LISTAGEM DE PRODUTOS ORDENADOS POR CATEGORIA -SELECT p.codigo_produto,p.descricao,p.unidade,c.descricao FROM tb_PRODUTO p left join tb_CATEGORIA c on c.codigo_categoria = p.categoria ORDER BY p.descricao

-- PASSO 3 --- FAZENDO A SOMATORIA DOS PRODUTOS AGRUPADOS POR CATEGORIA E ORDENANDO DO MAIOR PAR O MENOR -SELECT categoria, SUM(valor_unit) as soma_valores FROM tb_PRODUTO GROUP BY categoria

ORDER BY SUM(valor_unit) desc

-- PASSO 3.2 --- MOSTRANDO A QUANTIDADE DE PRODUTOS CADASTRADOS NA TABELA PRODUTO AGRUPADO POR CATEGORIA -SELECT COUNT(*)as Qt_Prod,categoria FROM tb_PRODUTO GROUP BY categoria

------------------------------------------ ETAPA 2 ----------------------------------- PASSO 1 --- O Comando abaixo ir atualizar o valor unitrio de todos os produtos da categoria laticnios, aumentando-os em 10% -UPDATE tb_OCORRENCIAS SET valor_unit = valor_unit * 1.1 WHERE categoria = '10'

-- PASSO 2 --- O Comando abaixo, ir remover utilizar uma subquery para remover o produto que tenha o maior valor na categoria Laticnios -DELETE FROM tb_PRODUTO WHERE valor_unit =(Select MAX(valor_unit) from tb_PRODUTO where categoria = '10') and categoria = '10'

-- PASSO 3.1 --- O Comando abaixo, ir criar uma view, contendo as conlunas existentes na tabela Produto --

CREATE VIEW VER_PRODUTO as Select codigo_produto, descricao, unidade FROM tb_PRODUTO

-- PASSO 3.2 -SELECT * FROM VER_PRODUTO Com a View, conseguiremos uma melhor performance do banco de dados, otimizao de consultas, pois no precisaremos reescrever novamente o cdigo.

------------------------------------------ ETAPA 3 ----------------------------------- PASSO 1 --- O Comando abaixo, criou uma trigger na tabela produto, trigger de Insert --

CREATE TRIGGER trigger_insert_tb_PRODUTO on tb_PRODUTO after INSERT as INSERT INTO tb_OCORRENCIAS(codigo_produto,descricao,unidade,categoria,valor_unit,operacao, usuario_logado,data_ocorrencia) Select codigo_produto,descricao,unidade,categoria,valor_unit,'insert',user_name(),getdate () from inserted -- O Comando abaixo, criou uma trigger na tabela produto, trigger de UPDATE --

CREATE TRIGGER trigger_update_tb_PRODUTO on tb_PRODUTO after UPDATE as INSERT INTO tb_OCORRENCIAS(codigo_produto,descricao,unidade,categoria,valor_unit,operacao, usuario_logado,data_ocorrencia) Select codigo_produto,descricao,unidade,categoria,valor_unit,'update',user_name(),getdat e() from inserted -- O Comando abaixo, criou uma trigger na tabela produto, trigger de DELETE --

CREATE TRIGGER trigger_delete_tb_PRODUTO on tb_PRODUTO after DELETE as INSERT INTO tb_OCORRENCIAS(codigo_produto,descricao,unidade,categoria,valor_unit,operacao, usuario_logado,data_ocorrencia) Select codigo_produto,descricao,unidade,categoria,valor_unit,'delete',user_name(),getdat e() from deleted

-- O Comando abaixo, criou uma trigger na tabela categoria, trigger de INSERT --

CREATE TRIGGER trigger_insert_tb_CATEGORIA on tb_CATEGORIA after INSERT as INSERT INTO tb_OCORRENCIAS(codigo_produto,descricao,unidade,categoria,valor_unit,operacao, usuario_logado,data_ocorrencia) Select '',descricao,'',codigo_categoria,'','insert',user_name(),getdate() from inserted -- O Comando abaixo, criou uma trigger na tabela categoria, trigger de UPDATE --

CREATE TRIGGER trigger_update_tb_CATEGORIA on tb_CATEGORIA after UPDATE as INSERT INTO tb_OCORRENCIAS(codigo_produto,descricao,unidade,categoria,valor_unit,operacao, usuario_logado,data_ocorrencia) Select '',descricao,'',codigo_categoria,'','UPDATE',user_name(),getdate() from inserted -- O Comando abaixo, criou uma trigger na tabela categoria, trigger de DELETE --

CREATE TRIGGER trigger_delete_tb_CATEGORIA on tb_CATEGORIA after DELETE as INSERT INTO tb_OCORRENCIAS(codigo_produto,descricao,unidade,categoria,valor_unit,operacao, usuario_logado,data_ocorrencia) select '',descricao,'',codigo_categoria,'','delete',user_name(),getdate() from deleted -- PASSO 2 --

-- O Comando abaixo ir realiz 15 inserts na tabela Produto -INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INSERT INTO INTO INTO INTO INTO INTO INTO INTO INTO INTO INTO INTO INTO INTO INTO tb_PRODUTO tb_PRODUTO tb_PRODUTO tb_PRODUTO tb_PRODUTO tb_PRODUTO tb_PRODUTO tb_PRODUTO tb_PRODUTO tb_PRODUTO tb_PRODUTO tb_PRODUTO tb_PRODUTO tb_PRODUTO tb_PRODUTO VALUES VALUES VALUES VALUES VALUES VALUES VALUES VALUES VALUES VALUES VALUES VALUES VALUES VALUES VALUES ('1','LEITE EM PO','KG','10','1.20') ('2','LEITE LONGA VIDA','LITRO','10','2.30') ('3','LEITE ITAMBE','LITRO','10','2.50') ('4','LEITE PARMALAT','LITRO','10','3.00') ('5','QUEIJO','KG','10','7.50') ('6','REQUEIJAO ITAMBE','ML','10','5.00') ('7','QUALHADA','ML','10','5.50') ('8','YOGURTE','LITRO','10','4.50') ('9','LEITE CONDENSADO','KG','10','2.50') ('10','REQUEIJAO PARMALAT','KG','10','2.30') ('11','YAKUTE','LITRO','10','3.00') ('12','DANONINHO','LITRO','20','3.20') ('13','MUSSARELA REZENDE','KG','20','4.50') ('14','QUEIJO PRATO','KG','20','5.00') ('15','QUEIJO CANASTRA','KG','20','5.50')

-- O COMANDO ABAIXO IR FAZER ALTERAES NA TABELA DE PRODUTOS -UPDATE tb_PRODUTO SET = '1' UPDATE tb_PRODUTO SET = '2' UPDATE tb_PRODUTO SET = '3' UPDATE tb_PRODUTO SET UPDATE tb_PRODUTO SET '5' UPDATE tb_PRODUTO SET '6' UPDATE tb_PRODUTO SET = '7' UPDATE tb_PRODUTO SET = '8' UPDATE tb_PRODUTO SET codigo_produto = '9' UPDATE tb_PRODUTO SET codigo_produto = '10' UPDATE tb_PRODUTO SET = '11' UPDATE tb_PRODUTO SET = '12' UPDATE tb_PRODUTO SET codigo_produto = '13' descricao = 'LEITE_DESNATADO' WHERE codigo_produto descricao = 'LEITE_VIDA_LONGA' WHERE codigo_produto descricao = 'LEITE_ITAMBINHO' WHERE codigo_produto descricao = 'LEITE_PARM' WHERE codigo_produto = '4' descricao = 'QUEIJO_DA_VACA' WHERE codigo_produto = descricao = 'REQUEIJAO_ITA' WHERE codigo_produto = descricao = 'QUALHADA_DABOA' WHERE codigo_produto descricao = 'YOGURTE_BANDEJA' WHERE codigo_produto descricao = 'LEITE_CONDENSADO_MOA' WHERE descricao = 'REQUEIJAO_PALPITEX' WHERE descricao = 'YAKUTE_FIRMEZA' WHERE codigo_produto descricao = 'DANONINHO_LIGHT' WHERE codigo_produto descricao = 'MUSSARELA_ADOCADA' WHERE

UPDATE tb_PRODUTO SET descricao = 'QUEIJO PRATO_FINO' WHERE codigo_produto = '14' UPDATE tb_PRODUTO SET descricao = 'QUEIJO PASTEURIZADO' WHERE codigo_produto = '15'

-- O COMANDO ABAIXO IR DELETAR AS INFORMAES DA TABELA DE PRODUTOS -DELETE DELETE DELETE DELETE DELETE DELETE DELETE DELETE DELETE DELETE DELETE DELETE DELETE DELETE DELETE FROM FROM FROM FROM FROM FROM FROM FROM FROM FROM FROM FROM FROM FROM FROM tb_PRODUTO tb_PRODUTO tb_PRODUTO tb_PRODUTO tb_PRODUTO tb_PRODUTO tb_PRODUTO tb_PRODUTO tb_PRODUTO tb_PRODUTO tb_PRODUTO tb_PRODUTO tb_PRODUTO tb_PRODUTO tb_PRODUTO WHERE WHERE WHERE WHERE WHERE WHERE WHERE WHERE WHERE WHERE WHERE WHERE WHERE WHERE WHERE codigo_produto codigo_produto codigo_produto codigo_produto codigo_produto codigo_produto codigo_produto codigo_produto codigo_produto codigo_produto codigo_produto codigo_produto codigo_produto codigo_produto codigo_produto = = = = = = = = = = = = = = = '1' '2' '3' '4' '5' '6' '7' '8' '9' '10' '11' '12' '13' '14' '15'

-- PASSO 3 --- O Comando abaixo ir gerar uma lista de ocorrencias gravadas na tabela Ocorrencias -SELECT * FROM tb_Ocorrencias

Das könnte Ihnen auch gefallen