VALUES
リスト #
<literal>VALUES</literal> provides a way to generate a <quote>constant table</quote>
that can be used in a query without having to actually create and populate
a table on-disk. The syntax is
VALUES
は、「定数テーブル」を生成する方法を提供します。
それは実際にはディスク上に作成して配置することなく、問い合わせで使用することができます。
構文を以下に示します。
VALUES ( expression
[, ...] ) [, ...]
Each parenthesized list of expressions generates a row in the table.
The lists must all have the same number of elements (i.e., the number
of columns in the table), and corresponding entries in each list must
have compatible data types. The actual data type assigned to each column
of the result is determined using the same rules as for <literal>UNION</literal>
(see <xref linkend="typeconv-union-case"/>).
括弧で括られた式のリストがそれぞれ、テーブルの行を生成します。
リストは同一の要素数(つまり、テーブルの列数)を持たなければなりません。
また、各リストで対応する項目のデータ型に互換性がなければなりません。
最終的に各列に割り当てられる実際のデータ型は、UNION
と同様の規則に従って決定されます。
(10.5を参照してください。)
As an example: 以下に例を示します。
VALUES (1, 'one'), (2, 'two'), (3, 'three');
will return a table of two columns and three rows. It's effectively equivalent to: これは、2列3行のテーブルを返します。 実質的に、以下と同じです。
SELECT 1 AS column1, 'one' AS column2 UNION ALL SELECT 2, 'two' UNION ALL SELECT 3, 'three';
By default, <productname>PostgreSQL</productname> assigns the names
<literal>column1</literal>, <literal>column2</literal>, etc. to the columns of a
<literal>VALUES</literal> table. The column names are not specified by the
SQL standard and different database systems do it differently, so
it's usually better to override the default names with a table alias
list, like this:
デフォルトでは、PostgreSQLはVALUES
テーブルの各列にcolumn1
、column2
といった名前をつけます。
標準SQLではこれらの列名は規定されていませんので、データベースシステムの種類によって異なる名前を付与しています。
そのため、通常はテーブル別名リストを使用して、以下のようにデフォルトの名前を上書きする方がよいでしょう。
=> SELECT * FROM (VALUES (1, 'one'), (2, 'two'), (3, 'three')) AS t (num,letter); num | letter -----+-------- 1 | one 2 | two 3 | three (3 rows)
Syntactically, <literal>VALUES</literal> followed by expression lists is
treated as equivalent to:
文法的には、VALUES
の後に式のリストがあるものは、以下と同様に扱われます。
SELECTselect_list
FROMtable_expression
and can appear anywhere a <literal>SELECT</literal> can. For example, you can
use it as part of a <literal>UNION</literal>, or attach a
<replaceable>sort_specification</replaceable> (<literal>ORDER BY</literal>,
<literal>LIMIT</literal>, and/or <literal>OFFSET</literal>) to it. <literal>VALUES</literal>
is most commonly used as the data source in an <command>INSERT</command> command,
and next most commonly as a subquery.
そして、SELECT
が記述できるところであれば、どこにでも記述することができます。
例えば、UNION
の一部として使用することもできますし、sort_specification
(ORDER BY
、LIMIT
、OFFSET
)を付けることもできます。
VALUES
はINSERT
コマンドの元データとしてもっとも頻繁に使用されます。
次に使用頻度が高いのは副問い合わせとしての使用です。
For more information see <xref linkend="sql-values"/>. 詳しくはVALUESを参照してください。