VALUESリスト

PostgreSQL 9.1.1文書
前のページ | 巻戻し | 第 7章問い合わせ | 早送り | 次のページ

# 7.7. `VALUES`リスト

`VALUES`は、実際にディスク上にテーブルを生成し、値を投入することなく、問い合わせの中で使用することができる"定数テーブル"を生成する手法を提供します。 構文を以下に示します。

    VALUES ( expression [, ...] ) [, ...]

括弧で括られた式のリストがそれぞれ、そのテーブル内である行を生成します。 リストは同一の要素数（つまり、テーブルの列数）を持たなければなりません。 また、各リストで対応する項目のデータ型に互換性がなければなりません。 最終的に実際各列に割り当てられるデータ型は、`UNION`同様の規則に従って決定されます。 （項10.5を参照してください。）

以下に例を示します。

    VALUES (1, 'one'), (2, 'two'), (3, 'three');

これは、2列3行のテーブルを返します。 実質以下と同じです。

    SELECT 1 AS column1, 'one' AS column2
    UNION ALL
    SELECT 2, 'two'
    UNION ALL
    SELECT 3, 'three';

デフォルトでは、PostgreSQLは`VALUES`テーブルの各列に`column1`、`column2`といった名前をつけます。 標準SQLでは列名は規定されていませんので、他のデータベースシステムでは他の名前を付与しています。 そのため、通常はテーブル別名リストを使用して、デフォルトの名前を上書きする方がよいでしょう。

文法的には、式リストに続く`VALUES`は、以下と同様に扱われます。

    SELECT select_list FROM table_expression

そして、`SELECT`が記述できるところであれば、記述することができます。 例えば、`UNION`の一部として使用することもできますし、`sort_specification` (`ORDER BY`、`LIMIT`、`OFFSET`)に付けることもできます。 `VALUES`は`INSERT`コマンドの元データとしてもっとも頻繁に使用されます。 次に使用頻度が高いのは副問い合わせとしての使用です。

詳しくはVALUESを参照してください。

前のページ | ホーム | 次のページ
`LIMIT`と`OFFSET` | 上に戻る | `WITH`問い合わせ（共通テーブル式）