别名能够在不影响基础表或视图的情况下临时重命名表或列。作为大多数甚至所有关系数据库管理系统都支持的 SQL 功能,别名是简化查询和/或自定义结果集中列标题的好方法。在这篇文章中,我们将使用 Navicat Premium 16 来完成这两项工作。
重命名列
许多数据库设计者使用缩写表示表的列名以使其更简短,例如:
- emp_no 表示“Employee Number”
- qty 表示“quantity”
对于查看查询结果的人来说,列名缩写并不总是能够一看就懂。若要解决这个问题,你可以使用列别名,为结果集中的列提供更具描述性的名称。
列别名的语法是:
column_name [AS] alias_name
请注意,AS 关键字是可选的。
你可以在别名中包含空格,方法是将它们括在单引号(或双引号)中,如下所示:
column_name AS 'Alias Name'
以下是一个包含一些列别名的示例查询:
表达式使用别名
你可能已经注意到,如果查询包含表达式,则整个表达式将用作列标题。例如:
为表达式指定列别名会使其更清晰易明:
表别名
表别名的规则与列别名相同,但它们的用途不同,因为表别名不会出现在查询结果中。它的概念是使用更短的名称将列与其表关联以缩短查询的长度。
表别名的基本语法如下:
SELECT column1, column2.... FROM table_name [AS] alias_name WHERE [condition];
与其表关联的列称为限定列名。当具有相同名称的两个列出现在同一个 SELECT 语句中时,需要对列进行限定。事实上,我们在上面的列别名示例中也看到限定列名。以下的另一个查询包含两个 actor_id 列,一个来自 actors 表,另一个来自 film_actor 表:
虽然上述的查询是有效的,但我们可以使用表别名来缩短它:
请注意,明确的列(即只出现在一个表中的列)不需要限定。
当使用像 Navicat 这样的新式数据库工具时,表别名有另一种很有用的用途。多亏了自动建议功能,键入表别名时会出现建议下拉列表。列表将包含所有表列:
这能大大加快了查询编写的速度,是专业数据库开发的重要一环。
总结
本文介绍了列和表别名,以及 Navicat Premium 16 中的一些实际示例。
如果你有兴趣了解更多关于 Navicat Premium 16 的信息,你可以免费试用完整无限制版本14 天!