Usuário com melhor resposta
Inserindo dados após a criação das tabelas

Pergunta
-
Boa tarde!
Foi aplicado um exercico em sala de aula onde devemos criar um banco de dados chamado pedido e inserir dados nele.
A criação das tabelas foi rapida, ja a inserção de dados esta complicado. Não tenho conhecimento nem de nivel basico e estou com grandes dificuldades no entendimento de onde começa.
Estou colocando aqui o código e o pdf do exercicio, se puderem me ajudar ficarei grato.
Aqui esta o código que eu criei.
Ao final do código eu coloquei em negrito para mostrar onde eu não consigo evoluir.
Obs: Tudo deve ser feito em linha de codigo.
----------------------------------------------------------------------------------------------------------------------
/* Trabalho Xyko Bando de dados pedido
Diogo Malvezzi - Desafio
*/
--criando banco
create database BDPedido;
--------------------
--abrindo bdpedido
use BDPedido;
---------------------
--criando tbcliente
create table BDPedido.dbo.TBCliente
( cli_codigo integer not null primary key,
cli_nome varchar (30) not null,
cli_cpf varchar (15) not null,
salario varchar (10) not null,
);
-----------------------
--criando tabela vendedores
create table BDPedido.dbo.TBVendedores
( ved_codigo integer not null primary key,
ved_nome varchar (30) not null,
ved_salario varchar (30) not null,
verd_status varchar (30) not null,
);
-----------------------
--criando tbpedidos
create table BDPedido.dbo.TBPedidos
( ped_codigo integer not null primary key,
ped_data date not null,
cli_codigo integer not null,
ved_codigo integer not null,
-- Criando a Restrição de FK TBCliente - chave exportada
CONSTRAINT FKcli_codigo Foreign Key (cli_codigo)
References BDPedido.dbo.TBcliente (cli_codigo)
on delete no action
on update cascade ,
-- Criando a Restrição de FK TBvendedores- chave exportada
CONSTRAINT FKved_codigo Foreign Key (ved_codigo)
References BDPedido.dbo.TBvendedores(ved_codigo)
on delete no action
on update cascade
);
----------------------------
--criando tabela status produto
create table BDPedido.dbo.TBStatusproduto
( stp_codigo integer not null primary key,
stp_descricao varchar (30) not null,
);
-----------------------------------
--criando tabela tbprodutos
create table BDPedido.dbo.TBProdutos
( prd_codigo integer not null primary key,
prd_descricao varchar (50) not null,
prd_valor float (10) not null,
prd_quantidade varchar (10) not null,
prd_status integer not null,
-- Criando a Restrição de FK TBStatusproduto - chave exportada
CONSTRAINT FKprd_status Foreign Key (prd_status)
References BDPedido.dbo.TBStatusproduto (stp_codigo)
on delete no action
on update cascade
);
---------------------
--criando tabela intes pedido
create table BDPedido.dbo.TBItenspedido
( ped_codigo integer not null ,
prd_codigo integer not null,
iten_quantidade varchar (30) not null,
-- chave primária composta
constraint pkTBItenspedido primary key (ped_codigo,prd_codigo),
-- Criando a Restrição de FK TBItenspedidos - chave exportada
CONSTRAINT FKped_codigo Foreign Key (ped_codigo)
References BDPedido.dbo.TBPedidos (ped_codigo)
on delete no action
on update cascade,
-- Criando a Restrição de FK TBProdutos - chave exportada
CONSTRAINT FKprd_codigo Foreign Key (prd_codigo)
References BDPedido.dbo.TBProdutos (prd_codigo)
on delete no action
on update cascade
);
---------------------
--criando tabela de historico precos
create table BDPedido.dbo.TBHistoricoprecos
( prd_codigo integer not null primary key,
prd_preco_antigo varchar (10) not null,
prd_preco_novo varchar (10) not null,
prd_data_atualizacao date not null,
usuario_bd varchar (30) not null,
usuario_sistema varchar (30) not null,
);
--------------------------------------
--adicionando cadastros
--inserindo registro TBProdutos
insert into BDPedido.dbo.TBProdutos
(prd_codigo, prd_descricao, prd_valor, prd_quantidade, prd_status)
values
(10, 'monitor', 'imagem', '100', 'cem', )
------------------------------------------------------------
select*
from BDPedido.dbo.TBClientes;
------------------------------------------------------------
Respostas
-
Diogo, Bom dia!
A sintaxe basica de inserção é:
INSERT INTO Tabela(NomeDasColunas, n...)
VALUES (v1, v2, vN...)
Lembrando que os valores inseridos são posicionais com as colunas destino, ou seja, 3 colunas, voce deve apontar 3 valores.
Quanto a logica de inserção vale a seguinte regra, se voce tem a tabela pedido que referencia produto, voce não pode inserir em pedido sem ter produtos, então a ordem de inserção deve ser Produto -> Pedido
Fabrizzio A. Caputo
MCT
Certificações:
Oracle OCA 11g
MCITP SQL Server 2008 Implementation and Maintenance
MCITP SQL Server 2008 Developer
Blog Pessoal: www.fabrizziocaputo.wordpress.com
Blog Empresa: www.tripletech.com.br/blog
Twitter: @FabrizzioCaputo
Email: fabrizzio.antoniaci@gmail.com- Sugerido como Resposta Roberson Naves segunda-feira, 10 de dezembro de 2012 13:10
- Marcado como Resposta Diogo M Malvezzi segunda-feira, 10 de dezembro de 2012 23:56
-
Cara,
O seu problema está sendo a ultima virgula do Insert. Vou colocar exemplos:
insert into BDPedido.dbo.TBProdutos(prd_codigo, prd_descricao, prd_valor, prd_quantidade, prd_status) values(10, 'monitor', 'imagem', '100', 'cem')
--OU
insert into BDPedido.dbo.TBProdutos(prd_codigo, prd_descricao, prd_valor, prd_quantidade, prd_status) values(10, 'monitor', 'imagem', '100', 'cem'),
(120, 'monidgdtor', 'imagedgm', '100', 'ceasdadm'),
(130, 'monithdgfor', 'imagdfgem', '100', 'sadfsa'),
(120, 'monidgfdtor', 'imagedgdfgm', '100', 'cemsdfs')
--OU
insert into BDPedido.dbo.TBProdutos(prd_codigo, prd_descricao, prd_valor, prd_quantidade, prd_status) select(10, 'monitor', 'imagem', '100', 'cem') union
select(120, 'monidgdtor', 'imagedgm', '100', 'ceasdadm')union
select(130, 'monithdgfor', 'imagdfgem', '100', 'sadfsa')union
select(120, 'monidgfdtor', 'imagedgdfgm', '100', 'cemsdfs')
Atenciosamente,
Samuel dos Anjos
Atenciosamente, Samuel dos Anjos
- Sugerido como Resposta Samuel Rodrigues dos Anjos terça-feira, 11 de dezembro de 2012 23:20
- Editado Samuel Rodrigues dos Anjos terça-feira, 11 de dezembro de 2012 23:22
- Marcado como Resposta Diogo M Malvezzi sexta-feira, 21 de dezembro de 2012 13:14
Todas as Respostas
-
Diogo, Bom dia!
A sintaxe basica de inserção é:
INSERT INTO Tabela(NomeDasColunas, n...)
VALUES (v1, v2, vN...)
Lembrando que os valores inseridos são posicionais com as colunas destino, ou seja, 3 colunas, voce deve apontar 3 valores.
Quanto a logica de inserção vale a seguinte regra, se voce tem a tabela pedido que referencia produto, voce não pode inserir em pedido sem ter produtos, então a ordem de inserção deve ser Produto -> Pedido
Fabrizzio A. Caputo
MCT
Certificações:
Oracle OCA 11g
MCITP SQL Server 2008 Implementation and Maintenance
MCITP SQL Server 2008 Developer
Blog Pessoal: www.fabrizziocaputo.wordpress.com
Blog Empresa: www.tripletech.com.br/blog
Twitter: @FabrizzioCaputo
Email: fabrizzio.antoniaci@gmail.com- Sugerido como Resposta Roberson Naves segunda-feira, 10 de dezembro de 2012 13:10
- Marcado como Resposta Diogo M Malvezzi segunda-feira, 10 de dezembro de 2012 23:56
-
-
Cara,
O seu problema está sendo a ultima virgula do Insert. Vou colocar exemplos:
insert into BDPedido.dbo.TBProdutos(prd_codigo, prd_descricao, prd_valor, prd_quantidade, prd_status) values(10, 'monitor', 'imagem', '100', 'cem')
--OU
insert into BDPedido.dbo.TBProdutos(prd_codigo, prd_descricao, prd_valor, prd_quantidade, prd_status) values(10, 'monitor', 'imagem', '100', 'cem'),
(120, 'monidgdtor', 'imagedgm', '100', 'ceasdadm'),
(130, 'monithdgfor', 'imagdfgem', '100', 'sadfsa'),
(120, 'monidgfdtor', 'imagedgdfgm', '100', 'cemsdfs')
--OU
insert into BDPedido.dbo.TBProdutos(prd_codigo, prd_descricao, prd_valor, prd_quantidade, prd_status) select(10, 'monitor', 'imagem', '100', 'cem') union
select(120, 'monidgdtor', 'imagedgm', '100', 'ceasdadm')union
select(130, 'monithdgfor', 'imagdfgem', '100', 'sadfsa')union
select(120, 'monidgfdtor', 'imagedgdfgm', '100', 'cemsdfs')
Atenciosamente,
Samuel dos Anjos
Atenciosamente, Samuel dos Anjos
- Sugerido como Resposta Samuel Rodrigues dos Anjos terça-feira, 11 de dezembro de 2012 23:20
- Editado Samuel Rodrigues dos Anjos terça-feira, 11 de dezembro de 2012 23:22
- Marcado como Resposta Diogo M Malvezzi sexta-feira, 21 de dezembro de 2012 13:14
-