

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# VALUES 句
<a name="VALUES"></a>

VALUES 句は、テーブルを参照することなく、クエリ内で一連の行値を直接提供するために使用されます。

VALUES 句は、次のシナリオで使用できます。
+ INSERT INTO ステートメントで VALUES 句を使用して、テーブルに挿入される新しい行の値を指定できます。
+ VALUES 句を単独で使用して、テーブルを参照することなく、一時的な結果セットまたはインラインテーブルを作成できます。
+ VALUES 句を WHERE、ORDER BY、LIMIT などの他の SQL 句と組み合わせて、結果セットの行をフィルタリング、ソート、または制限できます。

この句は、永続的なテーブルを作成または参照することなく、SQL ステートメントで小さなデータセットを直接挿入、クエリ、または操作する必要がある場合に特に便利です。これにより、各行の列名と対応する値を定義できるため、個別のテーブルを管理するオーバーヘッドなしで、一時的な結果セットを作成したり、データをその場で挿入したりできます。

## 構文
<a name="VALUES-syntax"></a>

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

## パラメータ
<a name="VALUES-parameters"></a>

 *expression*   
値を生成する 1 つ以上の値、演算子、SQL 関数の組み合わせを指定する式。

 *table\$1alias*   
オプションの列名リストで一時名を指定するエイリアス。

## 例
<a name="VALUES-example"></a>

次の例では、インラインテーブル、2 つの列を持つ一時テーブルのような結果セット、`col1`および を作成します`col2`。結果セットの 1 行には`1`、それぞれ値 `"one"`と が含まれます。クエリの `SELECT * FROM`部分は、この一時結果セットからすべての列と行を取得するだけです。VALUES 句は列名を明示的に指定しないため、列名 (`col1` および `col2`) はデータベースシステムによって自動的に生成されます。

```
SELECT * FROM VALUES ("one", 1);
+----+----+
|col1|col2|
+----+----+
| one|   1|
+----+----+
```

カスタム列名を定義する場合は、VALUES 句の後に AS 句を使用して次のように定義できます。

```
SELECT * FROM (VALUES ("one", 1)) AS my_table (name, id);
+------+----+
| name | id |
+------+----+
| one  |  1 |
+------+----+
```

これにより、デフォルトの `name`および ではなく`id`、列名 `col1`および を含む一時的な結果セットが作成されます`col2`。