PostgreSQL 教程: 表别名

八月 31, 2023

摘要:在本教程中,您将了解 PostgreSQL 表别名及其实际应用。

PostgreSQL 表别名简介

表别名在执行查询期间临时为表分配新名称。

下面说明了表别名的语法:

table_name AS alias_name;

在此语法中,为table_name分配了一个别名alias_name。与列别名类似,AS关键字是可选的。这意味着您可以像这样省略AS关键字:

table_name alias_name;

表别名的实际应用

表别名有多种实际应用。

1) 对长表名使用表别名,使查询更具可读性

如果必须使用长表名限定列名,则可以使用表别名来节省一些输入并使查询更具可读性。

例如,当您在查询中使用了以下表达式:

a_very_long_table_name.column_name

您可以为表a_very_long_table_name分配一个别名,如下所示:

a_very_long_table_name AS alias

并使用表别名引用表a_very_long_table_name中的column_name

alias.column_name

2) 在连接子句中使用表别名

通常,您经常会使用 join 子句从具有相同列名的多个表中查询数据。

如果您使用来自多个表的相同列名而没有完全限定它们,您将收到错误。

为了避免此错误,您需要使用以下语法限定这些列:

table_name.column_name

为了使查询更短,您可以使用FROMINNER JOIN子句中列出的表名的表别名。例如:

SELECT
	c.customer_id,
	first_name,
	amount,
	payment_date
FROM
	customer c
INNER JOIN payment p 
    ON p.customer_id = c.customer_id
ORDER BY 
   payment_date DESC;

3) 在自连接中使用表别名

当您将表连接到自身(也称为自连接)时,您需要使用表别名。这是因为在查询中多次引用同一个表会导致错误。

以下示例演示如何使用表别名在同一查询中两次引用employee表:

SELECT
    e.first_name employee,
    m .first_name manager
FROM
    employee e
INNER JOIN employee m 
    ON m.employee_id = e.manager_id
ORDER BY manager;

在本教程中,您学习了如何使用 PostgreSQL 表别名在查询执行期间临时为表分配新名称。