SQL INSERT com

11/03/2020

0

Galera, estou com uma dúvida:

Estou aprendendo a trabalhar com SQL e me joguei num projeto aqui de gerenciamento de estoque e escolhi VB.net
Porém estou com dúvida em relação à CONSTRAINT, PRIMARY KEY, FOREIGN KEY e REFERENCES

CREATE TABLE F_ITENSMOV (
  ITM_CODIGO_ITEM        VARCHAR( 10 ) CHARACTER SET NONE   NOT NULL
, ITM_CODIGO_FORNECEDOR   VARCHAR( 4 ) CHARACTER SET NONE   NOT NULL
, ITM_ENTRADA            FLOAT DEFAULT 0        NOT NULL
, ITM_SAIDA              FLOAT DEFAULT 0        NOT NULL
, ITM_CODIGO_MOVIMENTACAO   VARCHAR( 8 ) CHARACTER SET NONE   NOT NULL
, ITM_SALDO_ANTERIOR     FLOAT                  NOT NULL
, ITM_CODIGO_LOTE        VARCHAR( 10 ) CHARACTER SET NONE   NOT NULL
, CONSTRAINT PK_ITENSMOV
    PRIMARY KEY ( ITM_CODIGO_MOVIMENTACAO, ITM_CODIGO_ITEM, ITM_CODIGO_FORNECEDOR )
)

ALTER TABLE F_ITENSMOV
  ADD CONSTRAINT FK_F_ITENSMOV
        FOREIGN KEY ( ITM_CODIGO_ITEM, ITM_CODIGO_FORNECEDOR ) 
        REFERENCES F_ITEM ( ITE_CODIGO, ITE_CODIGO_FORNECEDOR )


Nessa tabela de cima, como faço para inserir dados?

A outra tabela (que acredito eu que é utilizada) é essa:

CREATE TABLE F_ITEM (
  ITE_GEN                INTEGER                NOT NULL
, ITE_CODIGO             VARCHAR( 10 ) CHARACTER SET NONE   NOT NULL
, ITE_DESCRICAO          VARCHAR( 80 ) CHARACTER SET NONE   NOT NULL
, ITE_PRECO              FLOAT                  NOT NULL
, ITE_NUM_LOTE           VARCHAR( 10 ) CHARACTER SET NONE
, ITE_CODIGO_FORNECEDOR   VARCHAR( 4 ) CHARACTER SET NONE   NOT NULL
, ITE_CODIGO_FUNCIONARIO   VARCHAR( 4 ) CHARACTER SET NONE   NOT NULL
, ITE_SALDO_ATUAL        FLOAT DEFAULT 0        NOT NULL
, ITE_DT_CADASTRO        TIMESTAMP              NOT NULL
, CONSTRAINT PK_ITEM
    PRIMARY KEY ( ITE_CODIGO, ITE_CODIGO_FORNECEDOR )
)


Se tiverem algum link pra eu estudar tbm, agradeço, precisa nem ficar explicando mto, é que procurei e só encontro em inglês. Entendo um pouco só.

Obrigado desde já!
Vinícius Silva

Vinícius Silva

Responder

Post mais votado

11/03/2020

Olá Vinicius, tudobom ?

Primeiramente, vamos explicar as contraints.

As constraints são regras que definimos para que definir o comportamento dos dados em nossas colunas em uma tabela.
Com regras quero dizer que a primeira coluna que será o código do item será minha chave primária, logo a constraint da chave primária( Primary Key) será a condição que não poderá haver dados repetidos nesta coluna, e ela será o índice primário de busca.

Pronto, assim falamos das contraints e da primary key.

A Foreign key é uma regra definida quando fazemos uma associação entre tabelas, como a tabela cliente que tem como primary key a coluna cliente_id terá a constraint de foreign key (Chave estrangeira) com a tabela empresa que tem como referência a cliente uma coluna chama cliente_id também.

CREATE TABLE cliente (
cliente_id int primary key auto_increment, //USO Direto da constraint na criação da tabela
nome varchar(20) NOT NULL , //Constraint de Campo não vazio
);

CREATE TABLE empresa (
empresa_id int primary key auto_increment, 
razao_social varchar(20) NOT NULL,
client_id int ,
CONSTRAINT FK_PersonOrder('NOME DA REGRA') FOREIGN KEY (cliente_id) //Declaração da chave que será usada para chave estrangeira
    REFERENCES cliente(cliente_id) //Declaração de que tabela será usada de referência.


Agora, para realizar a inserção nas tabelas usamos os comandos INSERT INTO :

INSERT INTO cliente (nome) VALUES ('Lucas') ;

INSERT INTO empresa (razao_social, client_id) VALUES ('Devmedia', 1) // Definimos a chave estrangeira que queremos referenciar da outra tabela, no caso o id de número 1 que é nosso único registro. 

No exemplo acima construí o cenário de um cliente para uma empresa, poderia ser o contrário que é o mais comum, uma empresa com N clientes.

Então tudo se dá a partir do estudo de caso que irá ser a base para criação do molde do seu banco de dados .

Lucas Lima

Lucas Lima
Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar