VALUES式 VALUES expression

VALUES式により、値から行や表を構築できます。 VALUES式は問い合わせを置ける場所ならどこにでも置くことができ、したがって以下のいずれとしても利用が可能です。

  • ResultSetを返す文
  • 副問い合わせを置ける式や文
  • INSERT文の値(INSERT文では通例的にではなくVALUES式を用います。)

構文 VALUES ( {, }* ) [ , ( {, }* ) ]* | VALUES [ , ]* }

は以下のように定義されます。

| DEFAULT

最初の書き方では複数列の行が構築され、二つ目の書き方では単列の行が、個々の式を行の列値として、構築されます。

VALUES式がINSERT文にある場合のみ、DEFAULTというキーワードを使うことができます。 列にDEFAULTを指定すると、その列には列の既定値が挿入されます。 もう一つ列に既定値を挿入する方法があり、それはINSERT文にて一覧からその列を除いて、表の他の列の値のみ明示的に挿入することです。

-- 1列3行 VALUES (1),(2),(3) -- 1列3行 VALUES 1, 2, 3 -- 3列1行 VALUES (1, 2, 3) -- 2列3行 VALUES (1,21),(2,22),(3,23) -- 表を導出して構築 VALUES ('orange', 'orange'), ('apple', 'red'), ('banana', 'yellow') -- 単文でDEPARTMENTという表に二つの新しい部署を挿入する。 -- ただし新しい部署に管理者は割り当てない。 INSERT INTO DEPARTMENT (DEPTNO, DEPTNAME, ADMRDEPT) VALUES ('B11', 'PURCHASING', 'B01'), ('E41', 'DATABASE ADMINISTRATION', 'E01') -- MAJPROJ列に既定値をあてて、行を挿入する。 INSERT INTO PROJECT (PROJNO, PROJNAME, DEPTNO, RESPEMP, PRSTDATE, MAJPROJ) VALUES ('PL2101', 'ENSURE COMPAT PLAN', 'B01', '000020', CURRENT_DATE, DEFAULT) -- 組込みの関数を使う VALUES CURRENT_DATE -- 任意の式の値をとる VALUES (3*29, 26.0E0/3) -- 組込みの関数の返す値をとる values char(1)