# VALUES Expressão

"VALUES Expressão" permite construir uma linha ou uma tabela a partir de valores. A instrução VALUES é utilizada quando não existe uma cláusula FROM. Esta construção pode ser utilizada em todos os locais onde uma consulta pode ser utilizada e, portanto, pode ser utilizada como uma instrução que retorna um ResultSet, dentro de expressões e instruções sempre que uma subconsulta for permitida, e como fonte de valores para a instrução INSERT.

#### Sintaxe

    {
        VALUES ( Valor {, Valor }* )
            [ , ( Valor {, Valor }* ) ]* |
        VALUES Valor [ , Valor ]* |
     }

A primeira forma constrói linhas com várias colunas. A segunda forma constrói linhas com uma única coluna, com cada expressão sendo o valor da coluna da linha.

A palavra chave DEFAULT é permitida somente quando a expressão VALUES está em uma instrução INSERT. A especificação de DEFAULT para a coluna insere o valor padrão da coluna na coluna. Outra forma de inserir o valor padrão na coluna é omitir a coluna na lista de colunas, e somente inserir valores nas outras colunas da tabela.

    -- 3 linhas de 1 coluna
    VALUES (1),(2),(3);

    -- 3 linhas de 1 coluna
    VALUES 1, 2, 3;

    -- 1 linha de 3 colunas
    VALUES (1, 2, 3);

    -- 3 linhas de 2 colunas
    VALUES (1,21),(2,22),(3,23);

    -- construção de uma tabela derivada
    VALUES ('laranja', 'laranja'), ('maçã', 'vermelha'),
    ('banana', 'amarela')

    -- Inserir dois novos departamentos na tabela DEPARTAMENTOS
    -- utilizando uma instrução, mas não atribuir gerente
    -- aos novos departamentos.
    INSERT INTO DEPARTAMENTOS (NUM_DEP, NOME_DEP, ADMRDEPT)
      VALUES ('B11', 'COMPRAS', 'B01'),
        ('E41', 'ADMINISTRAÇÃO DE BANCO DE DADOS', 'E01')

    -- inserir uma linha com valor DEFAULT para a coluna PROJ_PRINC
    INSERT INTO PROJETO (NUM_PROJ, NOME_PROJ, NUM_DEP, EMP_RESP,
        PROJ_DATA_INÍCIO, PROJ_PRINC)
    VALUES ('PL2101', 'ENSURE COMPAT PLAN', 'B01', '000020',
        CURRENT_DATE, DEFAULT);

    -- utilização de função nativa
    VALUES CURRENT_DATE

    -- obter o valor a partir de uma expressão arbitrária
    VALUES (3*29, 26.0E0/3)

    -- obter o valor retornado por uma função nativa
    VALUES CHAR(1)

- Valor

Tópico pai: Instruções
Conceitos relacionados
Interação com o sistema de dependências
Instruções CREATE
Instruções DROP
Instruções RENAME
Instruções SET
Referências relacionadas
Instrução ALTER TABLE
CALL (PROCEDIMENTO)
Cláusula CONSTRAINT
Instrução DECLARE GLOBAL TEMPORARY TABLE
Instrução DELETE
Cláusula FOR UPDATE
Cláusula FROM
Cláusula GROUP BY
Cláusula HAVING
INNER JOIN
Instrução INSERT
Operação JOIN
LEFT OUTER JOIN
Instrução LOCK TABLE
Cláusula ORDER BY
Consulta
RIGHT OUTER JOIN
SubconsultaEscalar
ExpressãoSeleção
Instrução SELECT
ExpressãoTabela
SubconsultaTabela
Instrução UPDATE
Cláusula WHERE
Cláusula WHERE CURRENT OF