Navicat 博客

使用 SQL 别名简化查询并自定义结果 2022 年 12 月 20 日,由 Robert Gravelle 撰写

别名能够在不影响基础表或视图的情况下临时重命名表或列。作为大多数甚至所有关系数据库管理系统都支持的 SQL 功能,别名是简化查询和/或自定义结果集中列标题的好方法。在这篇文章中,我们将使用 Navicat Premium 16 来完成这两项工作。

重命名列

许多数据库设计者使用缩写表示表的列名以使其更简短,例如:

  • emp_no 表示“Employee Number”
  • qty 表示“quantity”

对于查看查询结果的人来说,列名缩写并不总是能够一看就懂。若要解决这个问题,你可以使用列别名,为结果集中的列提供更具描述性的名称。

列别名的语法是:

column_name [AS] alias_name

请注意,AS 关键字是可选的。

你可以在别名中包含空格,方法是将它们括在单引号(或双引号)中,如下所示:

column_name AS 'Alias Name'

以下是一个包含一些列别名的示例查询:

column_aliases (131K)

表达式使用别名

你可能已经注意到,如果查询包含表达式,则整个表达式将用作列标题。例如:

query_with_expression (110K)

为表达式指定列别名会使其更清晰易明:

expression_alias (111K)

表别名

表别名的规则与列别名相同,但它们的用途不同,因为表别名不会出现在查询结果中。它的概念是使用更短的名称将列与其表关联以缩短查询的长度。

表别名的基本语法如下:

SELECT column1, column2....
FROM table_name [AS] alias_name
WHERE [condition];

与其表关联的列称为限定列名。当具有相同名称的两个列出现在同一个 SELECT 语句中时,需要对列进行限定。事实上,我们在上面的列别名示例中也看到限定列名。以下的另一个查询包含两个 actor_id 列,一个来自 actors 表,另一个来自 film_actor 表:

qualified_columns (48K)

虽然上述的查询是有效的,但我们可以使用表别名来缩短它:

table_aliases (44K)

请注意,明确的列(即只出现在一个表中的列)不需要限定。

当使用像 Navicat 这样的新式数据库工具时,表别名有另一种很有用的用途。多亏了自动建议功能,键入表别名时会出现建议下拉列表。列表将包含所有表列:

autocomplete (49K)

这能大大加快了查询编写的速度,是专业数据库开发的重要一环。

总结

本文介绍了列和表别名,以及 Navicat Premium 16 中的一些实际示例。

如果你有兴趣了解更多关于 Navicat Premium 16 的信息,你可以免费试用完整无限制版本14 天!

Navicat 文章
频道条目
分享
文章归档