Fundamentos
de Banco de Dados
Aula 07
Agenda
• Execução dos exercícios propostos na aula anterior
• Criação de banco de dados de Pedidos seguindo modelo lógico
• Entrar com dados nas tabelas
Tarefa do DBA
Modelo Lógico Modelo Físico
Banco de Dados Access, Oracle,
SQL Server...
Documentos (Modelagem)
SQL
Modelo Lógico
Cliente Código Nome
1 LOJA DO SEU MANUEL
2 LOJA DO SEU JOAQUIM
Itens do Pedido
Pedido Número Ítem Qtde Valor Total Produto Código 1 1 3 30,00 001 1 2 4 20,00 005 1 3 10 15,00 002 2 1 3 14,40 003 2 2 20 30,00 002 3 1 3 30,00 001 3 2 10 15,00 002 3 3 3 14,40 003 3 4 10 8,50 004
Pedido
Número Emissao Vencto Valor Total Cliente
código
1 10/05/2011 10/06/2011 65,00 1
2 11/05/2011 11/06/2011 44,40 2
3 12/05/2011 12/06/2011 67,90 1
Produto
Código Descrição Valor Unitário Código Tipo
001 Bola 10,00 B
002 Caneta 1,50 E
003 Copo 4,80 C
004 Borracha 0,85 E
005 Boné 5,00 R
Tipo_Produto Código Descrição
B Brinquedo
C Cozinha
E Estudo
R Roupa
Determinando as chaves primárias simples
• No comando CREATE TABLE, utilizar o sufixo PRIMARY KEY na definição do campo da tabela
• Chaves primárias não permitem dados duplicados nem valores nulo
Determinando as chaves primárias compostas
• ALTER TABLE <tabela>
ADD PRIMARY KEY (campo1, campo2, campoN )
Tabela: CLIENTE
CREATE TABLE Clientes (
cliCodigo INT PRIMARY KEY, cliNome TEXT(50) NOT NULL
)
Cliente Código Nome
1 LOJA DO SEU MANUEL
2 LOJA DO SEU JOAQUIM
Tabela: TIPO DE PRODUTO
Tipo_Produto Código Descrição
B Brinquedo
C Cozinha
E Estudo
R Roupa
CREATE TABLE ProdutosTipo (
tpCodigo TEXT(1) PRIMARY KEY, tpDescricao TEXT(20) NOT NULL
)
Tabela: PRODUTO
Produto
Código Descrição Valor Unitário Código Tipo 001 Bola 10,00 B
002 Caneta 1,50 E 003 Copo 4,80 C 004 Borracha 0,85 E 005 Boné 5,00 R
CREATE TABLE Produtos (
prdCodigo INT PRIMARY KEY, prdDescricao TEXT(30) NOT NULL,
prdValorUnit CURRENCY NOT NULL,
tpCodigo TEXT(1) NOT NULL
)
Tabela: PEDIDO
Pedido
Número Emissao Vencto Valor Total
Cliente código
1 10/05/2011 10/06/2011 65,00 1
2 11/05/2011 11/06/2011 44,40 2
3 12/05/2011 12/06/2011 67,90 1
CREATE TABLE Pedidos (
pedNumero INT PRIMARY KEY,
pedDtEmissao DATE NOT NULL, pedDtVencto DATE NOT NULL, pedValorTotal CURRENCY NOT NULL,
cliCodigo INT NOT NULL
Tabela: ÍTENS do PEDIDO
Itens do Pedido
Pedido Número
Ítem Qtde Valor Total
Produto Código1 1 3 30,00 001
1 2 4 20,00 005
1 3 10 15,00 002
2 1 3 14,40 003
2 2 20 30,00 002
3 1 3 30,00 001
3 2 10 15,00 002
3 3 3 14,40 003
3 4 10 8,50 004
CREATE TABLE PedidosItens (
pedNumero INT ,
pdiItem BYTE ,
pdiQtde SMALLINT NOT NULL,
pdiValorTotal CURRENCY NOT NULL,
prdCodigo INT NOT NULL
)
ALTER TABLE PedidosItens ADD PRIMARY KEY ( pedNumero, pdiItem )
Inserindo dados nas tabelas
• Para inserir dados em uma tabela utilizamos o comando INSERT INTO
INSERT INTO <tabela>
[( coluna1, coluna2, colunaN )]
VALUES
( valor1, valor2, valorN )
Inserindo dados de Cliente
INSERT INTO Clientes (cliCodigo, cliNome ) VALUES (1 , ‘LOJA DO SEU MANUEL’ )
INSERT INTO Clientes (cliCodigo, cliNome ) VALUES ( 2 , ‘LOJA DO SEU JOAQUIM’ )
Cliente Código Nome
1 LOJA DO SEU MANUEL
2 LOJA DO SEU JOAQUIM
Inserindo dados de Tipo de Produto
Tipo_Produto
Código Descrição
B Brinquedo
C Cozinha
E Estudo
R Roupa
INSERT INTO ProdutosTipo (tpCodigo, tpDescricao) VALUES ( ‘B’ , ‘BRINQUEDO’ )
INSERT INTO ProdutosTipo (tpCodigo, tpDescricao) VALUES ( ‘C’ , ‘COZINHA’ )
INSERT INTO ProdutosTipo (tpCodigo, tpDescricao) VALUES ( ‘E’ , ‘ESTUDO’ )
INSERT INTO ProdutosTipo (tpCodigo, tpDescricao) VALUES ( ‘R’ , ‘ROUPA’ )
Inserindo dados de Produtos
Produto
Código Descrição Valor Unitário Código Tipo
001 Bola 10,00 B
002 Caneta 1,50 E
003 Copo 4,80 C
004 Borracha 0,85 E
005 Boné 5,00 R
INSERT INTO Produtos VALUES ( 1 , ‘Bola’ , 10 , ‘B’ )
INSERT INTO Produtos VALUES ( 2 , ‘Caneta’ , 1.5 , ‘E’ ) INSERT INTO Produtos VALUES ( 3 , ‘Copo’ , 4.8 , ‘C’ )
INSERT INTO Produtos VALUES ( 4 , ‘Borracha’ , 0.85 , ‘E’ )
INSERT INTO Produtos VALUES ( 5 , ‘Boné’ , 5 , ‘R’ )
Inserindo dados de Pedidos
Pedido
Número Emissao Vencto Valor Total
Cliente código 1 10/05/2011 10/06/2011 65,00 1 2 11/05/2011 11/06/2011 44,40 2 3 12/05/2011 12/06/2011 67,90 1
INSERT INTO Pedidos VALUES ( 1, ‘2011-05-10’ , ‘2011-06-10’ , 65 , 1 )
INSERT INTO Pedidos VALUES ( 2, ‘2011-05-11’ , ‘2011-06-11’ , 44.4 , 2 )
INSERT INTO Pedidos VALUES ( 1, ‘2011-05-12’ , ‘2011-06-12’ , 67.9 , 1 )
Inserindo dados de Ítens de Pedido
Itens do Pedido
Pedido Número Ítem Qtde Valor Total Produto Código
1 1 3 30,00 001
1 2 4 20,00 005
1 3 10 15,00 002
2 1 3 14,40 003
2 2 20 30,00 002
3 1 3 30,00 001
3 2 10 15,00 002
3 3 3 14,40 003
3 4 10 8,50 004