

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 价值条款
<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 ]
```

## 参数
<a name="VALUES-parameters"></a>

 *expression*   
一种表达式，它指定一个或多个值、运算符和生成值的 SQL 函数的组合。

 *表别名*   
一种别名，用于指定带有可选列名列表的临时名称。

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

以下示例创建了一个内联表、包含两列的类似表的临时结果集，`col1`以及。`col2`结果集中的单行分别包含值`"one"`和`1`。查询`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`。