

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

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

VALUES 子句用於直接在查詢中提供一組資料列值，而不需要參考資料表。

VALUES 子句可用於下列案例：
+ 您可以在 INSERT INTO 陳述式中使用 VALUES 子句來指定要插入資料表之新資料列的值。
+ 您可以自行使用 VALUES 子句來建立暫時結果集或內嵌資料表，而不需要參考資料表。
+ 您可以結合 VALUES 子句與其他 SQL 子句，例如 WHERE、ORDER BY 或 LIMIT，以篩選、排序或限制結果集中的資料列。

當您需要直接在 SQL 陳述式中插入、查詢或操作一小組資料，而不需要建立或參考永久資料表時，此子句特別有用。它可讓您定義資料欄名稱和每一列的對應值，讓您靈活地即時建立臨時結果集或插入資料，而無需管理個別資料表的額外負荷。

## 語法
<a name="VALUES-syntax"></a>

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

## Parameters
<a name="VALUES-parameters"></a>

 *表達式*   
指定導致值的一或多個值、運算子和 SQL 函數的組合的表達式。

 *table\$1alias*   
指定具有選用資料欄名稱清單的暫時名稱的別名。

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

下列範例會建立內嵌資料表、具有兩個資料欄的暫存資料表類似結果集，`col1`以及 `col2`。結果集中的單一資料列`1`分別包含值 `"one"`和 。查詢`SELECT * FROM`的部分只會從此暫時結果集中擷取所有資料欄和資料列。資料庫系統會自動產生資料欄名稱 (`col1` 和 `col2`)，因為 VALUES 子句不會明確指定資料欄名稱。

```
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`。