DB2 - Banco de dados - Instruções e Funções Básicas - INSERT


Volta a página anterior

Volta ao Menu Principal


Desenvolvido por DORNELLES Carlos Alberto - Analista de Sistemas - Brasília DF. - cad_cobol@hotmail.com

INSERT

INSERT é uma instrução SQL que adiciona dados a uma tabela.

A instrução INSERT tem o seguinte formato:

   INSERT INTO tablename
        VALUES (value1, value2, ...)
Nessa sintaxe, tablename é o nome da tabela ou visualização na qual você deseja inserir dados e value1, value2 (e assim por diante) são os valores inseridos.

A lista de valores de dados após VALUES deve corresponder à lista de colunas da tabela onde serão inseridos.
Deverá haver o mesmo número de valores e colunas, e cada valor deverá ter um tipo de dados que esteja de acordo com sua coluna.
Conforme mostrado no exemplo a seguir, os valores nulos podem ser inseridos ao especificar NULL.

Essa instrução:

   INSERT INTO PERS
        VALUES (400, 'HARRISON', 20, 'SALES', NULL, 18000.66, 0)
Insere esta linha na tabela PERS:

   ID  NAME         DEPT  JOB     YEARS      SALARY        COMM
------ ---------  ------  -----  ------   ---------   ---------
  400  HARRISON       20  SALES       -    18000.66        0.00

A tabela PERS é uma cópia da tabela de amostra Q.STAFF. DISPLAY Q.STAFF SAVE DATA AS PERS

Inserir Valores de Coluna em uma Linha

Se você desejar inserir uma linha sem fornecer valores para todas as colunas de uma linha, poderá usar uma lista de colunas com a instrução INSERT.

Especifique os valores que deseja inserir nas colunas, conforme este exemplo:

   INSERT INTO PERS (ID, NAME, JOB, SALARY)
        VALUES (510, 'BUCHANAN', 'CLERK', 11500.75)
Uma maneira fácil para criar um instrução INSERT é usando o comando DRAW do QMF conforme a seguir:

   DRAW tablename (TYPE=INSERT
Para as colunas cujos valores não são especificados, nenhum valor é fornecido (NULL).
Se uma coluna for definida como NOT NULL, você deverá especificar valores para a mesma.

Copiar Linhas de uma Tabela para Outra

As linhas podem ser inseridas em uma tabela ao copiar dados de outra tabela e usar uma subconsulta para identificar as colunas a serem inseridas em vez de usar a cláusula VALUES com INSERT.
As informações recuperadas pela subconsulta são colocadas na tabela como se vários comandos INSERT tivessem sido emitidos.

A seguinte instrução copia as colunas ID, NAME, JOB e YEARS de membros do Departamento 38, da Q.STAFF para a PERS:

 
   INSERT INTO PERS (ID, NAME, JOB, YEARS)
          SELECT ID
          ,      NAME
          ,      JOB
          ,      YEARS
          FROM   Q.STAFF
          WHERE  DEPT = 38
Os valores deverão ser especificados para todas as colunas que forem definidas como NOT NULL.

Não é necessária uma correspondência exata entre as colunas que estão sendo selecionadas e as colunas que estão sendo inseridas;
entretanto, não deve haver mais colunas selecionadas do que inseridas.
Se o número de colunas selecionadas for menor que o número de colunas inseridas, as colunas restantes serão inseridas com nulos.
Não podem ser selecionadas linhas para inserção na mesma tabela.



© Copyright IBM Corp.