Anterior Home Page Sumário E-Mail Próximo

Comando INSERT

Sintaxe

comando_INSERT : 

       INSERT INTO tabela

       [ ( identificador_de_coluna [, identificador_de_coluna ]… ) ]

       { lista_de_valores | expressão_de_consulta }

lista_de_valores : VALUES ( {expressão | NULL} [, {expressão | NULL} ]…  )

expressão_de_consulta :

       { especificação_de_consulta |

       ( expressão_de_consulta ) }

       [ UNION [ ALL ]

       { especificação_de_consulta |

       ( expressão_de_consulta ) } ]… 

especificação_de_consulta : 

       cláusula_SELECT

       cláusula_FROM

       [ cláusula_WHERE ]

       [ cláusula_GROUP_BY ]

       [ cláusula_HAVING ]

Regras

Este comando insere uma ou mais linhas em uma tabela atualizável. A tabela não pode aparecer em nenhuma cláusula FROM na expressão de consulta.

Nenhuma coluna da tabela pode aparecer mais de uma vez na lista de colunas. Se a lista de identificadores de coluna for omitida, ficam implicitamente especificadas todas as colunas da tabela na ordem em que aparecem na definição da tabela.

O número de valores relacionados na cláusula VALUES ou o grau da tabela (número de colunas) resultante da expressão de consulta deve ser igual ao tamanho da lista de colunas implícita ou explicitamente especificados. A lista de valores na cláusula VALUES não deve conter funções de grupamento ou especificações de coluna.

Cada nova linha da tabela contém os valores explicitamente especificados no comando e valores nulos para as colunas não identificadas na lista.

Se o tipo de um valor a ser inserido for cadeia de caracteres de tamanho menor que a cadeia da coluna na tabela, o valor será completado com caracteres brancos. Se for de tamanho maior, nenhuma linha será inserida e o parâmetro SQLCODE indicará o erro. O mesmo acontece se o tipo da coluna for numérico exato e não houver uma representação do valor a ser inserido sem que haja perda de dígitos significativos de sua parte inteira.

Se uma coluna é do tipo DATETIME, o valor a ela correspondente deve ser do mesmo tipo com precisão de mesmo campo inicial. Se sua precisão for diferente da precisão do valor correspondente à coluna, os campos excedentes são truncados ou os campos adicionais são iniciados com o valor 1 para os campos mês e dia e com o valor 0 para os campos hora, minuto e segundo.

A cardinalidade da tabela resultante da expressão de consulta é o número de linhas a serem inseridas. Se esta tabela estiver vazia, o parâmetro SQLCODE receberá o valor 100 e não será feita nenhuma inserção.

Se o valor a ser inserido numa coluna em cuja definição não seja permitido valores nulos for nulo, nenhuma linha será inserida e o parâmetro SQLCODE indicará o erro.

Veja também Tabela, Valor , Especificação de consulta e SQLCODE.

Exemplos

O comando abaixo insere na tabela de clientes a empresa Arruda Associados com o número 1111 e com o vendedor de contato especificado por 101. O crédito deste cliente ainda não foi definido e recebe o valor nulo.

 INSERT INTO clientes (cód_cliente, nome, contato)

 VALUES (1111, ‘Arruda Associados’, 101)

O comando abaixo insere uma linha na tabela produtos. Valores para todas as colunas são especificados na ordem em que as colunas foram definidas.

 INSERT INTO produtos

 VALUES (‘CAT’, ‘_w234’, ‘Parafuso tipo B2’, 10.50, 500)

Anterior Home Page Sumário E-Mail Próximo