none
Inserindo dados após a criação das tabelas RRS feed

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

    sábado, 8 de dezembro de 2012 21:44

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
    segunda-feira, 10 de dezembro de 2012 12:52
    Moderador
  • 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


    terça-feira, 11 de dezembro de 2012 23:20

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
    segunda-feira, 10 de dezembro de 2012 12:52
    Moderador
  • Compreendido Fabrizzio!

    Obrigado novamente <o/

    terça-feira, 11 de dezembro de 2012 00:16
  • 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


    terça-feira, 11 de dezembro de 2012 23:20
  • Valeu  Samuel dos Anjos <o/
    sexta-feira, 21 de dezembro de 2012 13:15