MySQL 派生表

17 Mar 2025 | 阅读 2 分钟

MySQL 中的派生表是从 SELECT…FROM 语句返回的虚拟表。换句话说,它是在 SELECT 语句的 FROM 子句作用域下生成表的表达式。这个概念类似于临时表。但是,派生表比临时表更简单,因为不需要使用临时表创建所需的所有步骤。

大多数开发者互换使用派生表和子查询这两个术语。因此,我们可以说,当我们使用子查询在 SELECT…FROM 子句中时,它被称为派生表。

语法

以下是在 MySQL 中使用派生表的语法:

需要注意的是,独立子查询是指可以独立于包含该查询的语句执行的子查询。

我们还应该考虑到,派生表必须包含别名表名,这样我们就可以在语句后面的部分引用它的名称。如果我们没有为派生表提供别名,MySQL 将会发出以下错误消息:

每个派生表都必须有自己的别名。

此外,派生表的每个列都必须具有唯一的名称。让我们通过以下示例来理解这一点。

首先,我们将使用以下语句创建一个表:

接下来,使用以下语句向此表中填充一些记录:

执行 SELECT 语句以验证输出:

MySQL Derived Table

现在,执行以下语句以了解如何使用子查询 FROM 子句

它将返回如下输出:

MySQL Derived Table

让我们看另一个例子,我们将获取浮点数值列的平均值。执行以下语句:

在上面的语句中,派生表计算了浮点列的总和,然后从外部查询返回平均值。请看以下输出:

MySQL Derived Table

MySQL 中的派生表有以下限制:

  • MySQL 不将相关子查询用作派生表。
  • MySQL 不允许派生表引用同一 SELECT 语句中的其他表。
  • 我们不能在派生表中使用外部引用。

下一主题MySQL UUID