Você está na página 1de 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

-- PASSO 1 --

('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')

-- 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

Você também pode gostar