Upload
kidobe
View
91
Download
0
Embed Size (px)
Citation preview
5/28/2018 ATPS Programacao BD
1/13
NDICE
PASSO 1.1.1 .............................................................................................................................. 2
PASSO 1.1.2............................................................................................................................... 2
PASSO 1.1.3............................................................................................................................... 4
PASSO 1.2.1 .............................................................................................................................. 8
PASSO 1.2.2............................................................................................................................... 8
PASSO 1.2.3............................................................................................................................... 9
PASSO 1.2.4 .............................................................................................................................. 9
PASSO 1.2.5............................................................................................................................. 10
PASSO 1.2.6............................................................................................................................. 10
PASSO 1.2.7 ............................................................................................................................ 11
PASSO 1.2.8............................................................................................................................. 11
PASSO 1.2.9............................................................................................................................. 12
PASSO 1.2.10 .......................................................................................................................... 12
CONCLUSO ......................................................................................................................... 13
5/28/2018 ATPS Programacao BD
2/13
2
Passo 1.1.1 - Elaborar um script com os comandos SQL - DDL para criar o banco de dados do
sistema SIG.
O seguinte comando cria o database de nome ATPS_SIG:
CREATEDATABASEATPS_SIG;
Passo 1.1.2 - Criao das Tabelas e ndices
Criar tabela cliente:
CREATETABLEcliente
(idcliente INT,
nome VARCHAR(50) CHECK(nome like'[a-z]%'),
cpf CHAR(12), -- formato '999999999-99'
rg VARCHAR(11), -- formato '999999999-9'
endereco VARCHAR(50),
cidade VARCHAR(30),
uf CHAR(2),
fone VARCHAR(12), -- formato '(ll)nnnnnnnn'
celular VARCHAR(13), -- formato '(ll)nnnnnnnnn'
email VARCHAR(50),
datanascimento DATE,
genero CHAR(1),
PRIMARYKEY (idcliente) );
Criar tabela funcionario:
CREATETABLEfuncionario(
idfuncionario INT,
nome VARCHAR(50)CHECK(nome like'[a-z]%'),
cpf CHAR(12), -- formato '999999999-99'rg VARCHAR(11), -- formato '999999999-9'
ctps VARCHAR(20),
cargo VARCHAR(30),
datanascimento DATE,
dataadmissao DATE,
datademissao DATE,
ativo TINYINT,
comissao NUMERIC(11,2),
PRIMARYKEY(idfuncionario) );
5/28/2018 ATPS Programacao BD
3/13
3
Criar tabela produto:
CREATETABLEproduto (
idproduto INT,
descricao VARCHAR(50) CHECK (descricao like'[a-z]%'),
precovenda NUMERIC(11,2),
precocompra NUMERIC(11,2),
marca INT,
tipo INT,
PRIMARYKEY(idproduto));
Criar tabela venda:
CREATETABLEvenda(
idvenda INT,
cliente_venda INT,
data DATE,
hora TIME,
valortotal NUMERIC(11,2),
funcionario_venda INT,
PRIMARYKEY(idvenda),
CONSTRAINTcliente_venda FOREIGNKEY(cliente_venda)REFERENCEScliente
(idcliente),
CONSTRAINTfunc_venda FOREIGNKEY(funcionario_venda)REFERENCES
funcionario(idfuncionario) );
Criar tabela itemvenda:
CREATETABLEitemvenda (
iditemvenda INT,
venda_itemvenda INT,
produto_itemvenda INT,
qtde NUMERIC(7),
valorunitario NUMERIC(9,2),
valordesconto NUMERIC(11,2),
valortotal NUMERIC(15,2),
PRIMARYKEY (iditemvenda),
CONSTRAINTvenda_item FOREIGNKEY(venda_itemvenda)REFERENCESvenda
(idvenda),
CONSTRAINTproduto_item FOREIGNKEY(produto_itemvenda)REFERENCES
produto(idproduto) );
5/28/2018 ATPS Programacao BD
4/13
4
Passo 1.1.3 Elaborar um script contendo os comandos SQL para inserir dados nas tabelas.
Deve conter pelo menos 5 ocorrncias por tabela. Os dados da tabela funcionrios devem ser
dos alunos do grupo, com os campos NOME: nome do aluno e RG: RA do aluno, demais
dados podem ser fictcios.
Cdigo cliente:
INSERTINTOcliente(idcliente,nome,cpf,rg,endereco,cidade,uf,fone,
celular,email,datanascimento,genero)
VALUES
(1,'Luiz Shig','123456789-12','987654321-0','Av Morro Velho, 100',
'Sao Paulo','SP',
'(11)12345678','(11)987651122','[email protected]',
'1980/01/01','1'),
(2,'Antonio da Silva','333456789-12','999654321-0','Av Sobe Desce,
100','Sao Paulo','SP',
'(11)12345666','(11)987653333','[email protected]',
'1985/04/01','1'),
(3,'Watson Oliveira','123444789-12','987666321-0','Rua Pinheiro
Velho','Campo Limpo','SP',
'(11)12345666','(11)987654444','[email protected]',
'1995/01/25','2'),
(4,'Berenice Almeida','122256789-12','987643221-0','Av Sem Saida, 10',
'Bras','SP',
'(11)12345678','(11)987651122','[email protected]',
'1980/01/01','3'),
(5,'Fernanda de Lima','126546789-12','887754321-0','Av Fim do Mundo,
100','Rocinha','RJ',
'(11)12235678','(11)987665522','[email protected]','1975/11/22','4');
Antes do comando:
5/28/2018 ATPS Programacao BD
5/13
5
Depois do comando:
Cdigo funcionario:
INSERTINTOfuncionario(idfuncionario,nome,cpf,rg,ctps,cargo,
datanascimento,dataadmissao,datademissao,ativo,comissao )
VALUES
(101,'Vinicius Mendes','192837465-01','42000683-4','0123456-001-SP',
'gerente','1970/12/30','2013/10/27',null,1,null),
(102,'Fernando Schmidt','192888465-01','420177446-4','987654-001-SP',
'Adm','1970/12/11','2013/10/01',null,1,null),
(103,'Gleisa Damario','192227465-01','373067758-5','0123336-001-SP',
'Secretaria','1985/01/01','2012/10/27',null,1,null),
(104,'Vinicius Mariano','194443365-01','424182962-9','01234566-001-SP',
'Tecnico','1985/01/31','2012/01/05',null,1,null),
(105,'Jos Oliveira','192227465-01','998877445-1','0123336-001-SP',
'Analista','1988/07/01','2012/10/20',null,1,null) ;
Antes do comando:
Depois do comando:
5/28/2018 ATPS Programacao BD
6/13
6
Cdigo produto:
INSERTINTO produto (idproduto,descricao,precovenda,precocompra,marca,
tipo)VALUES(201,'caderno 100 fl',2.50,1.35,1,1),
(202,'caderno 200 fl',4.50,3.35,1,2),
(203,'lapis preto',0.50,0.25,2,5),
(204,'lapis de cor',6.50,5.35,2,6),
(205,'caneta preta',1.50,1.00,3,1),
(206,'esferografica vermelha',1.20,0.65,3,8),
(207,'Folha Sulfite A4',12.50,9.35,1,6),
(208,'borracha verde',2.50,1.35,1,1);
Antes do comando:
Depois do comando:
Cdigo venda:
INSERTINTOvenda(idvenda,cliente_venda,data,hora,valortotal,
funcionario_venda)
VALUES(501,1,'2013/10/25','10:00:01',120.00,101),
(502,1,'2013/12/20','05:00:01',230.00,101),
(503,3,'2013/10/22','10:00:01',20.00,101),
(504,2,'2012/10/25','7:00:01',100.00,102),
(505,4,'2011/10/21','10:00:01',350.00,101),
(506,4,'2013/05/25','10:00:01',340.00,102),
(507,5,'2013/10/01','10:10:00',25.00,102),
(508,5,'2013/10/25','10:00:01',120.00,103),
(509,1,'2011/11/25','10:30:01',80.00,104);
5/28/2018 ATPS Programacao BD
7/13
7
Antes do comando:
Depois do comando:
Cdigo itemvenda:
INSERTINTOitemvenda (iditemvenda,venda_itemvenda,produto_itemvenda,
qtde,valorunitario,valordesconto,valortotal)
VALUES(701,501,201,100,2.50,0.00,250.00),
(702,501,202,50,4.00,0.10,200.00),
(703,503,201,10,2.50,null,25.00),
(704,501,204,25,6.00,null,15.00),(705,504,205,10,1.40,0.10,14.00),
(706,504,208,25,2.00,0.15,50.00),
(707,506,201,10,1.00,0.00,10.00);
Antes do comando:
Depois do comando:
5/28/2018 ATPS Programacao BD
8/13
8
Passo 1.2.1 - Consulta Cliente. Exibiros campos: nome, cidade,UF, idade, gnero. Osregistros devem estar ordenados por nome. Filtros da consulta: cidade.
SELECTnome,cidade,uf,datanascimento,genero FROMcliente WHEREcidade='Sao
Paulo'ORDERBYnome ASC
Obs:o comando "asc" opcional. Por padro os resultados so mostrados de forma
ascendente.
Resultado:
Passo 1.2.2 - Consulta funcionarios. Exibiros campos: nome, cargo, idade,datadeadmisso, valor da comisso. Os registros devem estar ordenados por cargo. Filtros daconsulta: ativo
SELECTnome,cargo,datanascimento,dataadmissao,comissao FROMfuncionario
WHEREativo ='1'ORDERBYcargo
Resultado:
5/28/2018 ATPS Programacao BD
9/13
9
Passo 1.2.3 - Consulta vendas por funcionario - Exibir os campos: nome do funcionrio, valor
da venda. Os registros devemestar ordenados por valor da venda, sendo os maiores valoresexibidos primeiro. Filtros da consulta: dia da venda.
SELECTa.nome,b.valortotal FROMfuncionario a,venda b WHERE
a.idfuncionario =b.funcionario_venda ANDb.data
5/28/2018 ATPS Programacao BD
10/13
10
Passo 1.2.5 - Consulta vendas por cliente. Exibir o nome do cliente, cidade, quantidade total
de vendas, valor total de vendas. A consulta deve exibir todos os clientes, inclusive aqueles
que no possuem registros de venda. Os registros devem estar ordenados por nome e cidade.
Filtros da consulta: ms em que foram realizada as vendas.
SELECTa.nome,a.cidade,b.valortotal,SUM(c.qtde)ASqtdetotal FROMcliente
a,venda b,itemvenda c WHEREa.idcliente =b.cliente_venda AND
c.venda_itemvenda =b.idvenda ANDb.data BETWEEN'2013-10-01'AND'2013-10-
31'GROUPBYa.nome,a.cidade,b.valortotal ORDERBYa.nome,a.cidade
Resultado:
Passo 1.2.6 - Atualizao dos dados do cliente. alterar os dados de endereo para: Estrada do
Campo Limpo, 123 cidade: So Paulo e UF: SP. Listar todos os campo da tabela Clientes para
mostrar a atualizao realizada.
UPDATEcliente SETendereco='Estrada do Campo Limpo, 123',cidade='Sao
Paulo',uf='SP'WHEREidcliente ='5'
Antes:
Depois:
5/28/2018 ATPS Programacao BD
11/13
11
Passo 1.2.7 - Insero de dados do cliente. Inserir um novo cliente com os seus dados. Listar
todas as linhas e colunas da tabela para evidenciar a execuo da insero.
INSERTINTOcliente VALUES ('6', 'Carlos Bernardes', '158374695-12',
'496829734-5', 'Rua Sem Numero, 560', 'Sao Paulo', 'SP', '(11)41234321',
'(11)954789632', '[email protected]', '1988-07-31', '1')
Antes:
Depois:
Passo 1.2.8 - Excluso de dados do cliente. Excluir o cliente inserido na etapa anterior. Listar
todas as linhas e colunas da tabela para evidenciar a execuo
DELETEFROMcliente WHEREidcliente ='6'
Resultado:
5/28/2018 ATPS Programacao BD
12/13
12
Passo 1.2.9 - Consulta vendas e produtos. Relacionar os produtos que compem as vendas
efetuadas no ano corrente, exibindo: identificao da venda, identificao do funcionrio que
efetuou a venda, identificao do produto, descrio do produto, quantidade, preo unitrio e
preo total.
SELECTa.idvenda, a.funcionario_venda, b.idproduto, b.descricao, c.qtde,
c.valorunitario, c.valortotal FROMvenda a,produto b,itemvenda c
WHEREa.idvenda =c.venda_itemvenda ANDb.idproduto =c.produto_itemvenda
ANDa.data BETWEEN'2013-01-01'AND'2013-12-31'
Resultado:
Passo 1.2.10 - Consulta vendas produtos e clientes. Relacionar as Vendas de Clientes com
seus respectivos produtos, informando Identificao do Cliente, nome do Cliente, Unidade da
Federao, Ident. Venda, data Venda, Ident. Produto, Nome do Produto.
SELECTa.idcliente,a.nome,a.uf,b.idvenda,b.data,d.idproduto,
d.descricao FROMcliente a,venda b,itemvenda c,produto d WHERE
a.idcliente =b.cliente_venda ANDb.idvenda =c.venda_itemvenda AND
d.idproduto =c.produto_itemvenda
Resultado:
5/28/2018 ATPS Programacao BD
13/13
13
Concluso
Com esse trabalho, conclumos que um banco de dados bem organizado fundamental, tanto
no momento de interpret-lo como em um desenvolvimento de um sistema.
Este trabalhou tratou de temas relacionados a otimizao de consultas, o que muito
importante, pois atualmente, no podemos nos preocupar somente com segurana e
confiabilidade de dados, mas tambm devemos lembrar de fatores indispensveis como
desempenho, pois um banco de dados otimizado fundamental para qualquer empresa.
Alm disso, o ATPS foi uma tima ferramenta de aprendizado pois nos incentivou a praticar etambm a pesquisarmos alm do aprendido em sala de aula.