SQL Alias 别名


在本教程中,我们将学习如何在查询中使用SQL别名,包括列别名和表别名。

关于SQL别名

SQL支持两种类型的别名:列别名和表别名。

  • 列别名可以使查询结果的列名字描述得更明了。
  • 表别名可以避免引用完整的表名(特别是非常长的表名),从而节省写SQL的时间。此外,当一个表在查询中被多次引用时(例如,内连接、左连接或子查询) 使用表别名可以用来避免表混淆的错误。

SQL列别名

从表中查询数据时,列的名称将用作输出的标题。但是,列名通常是技术性的,因此很难理解结果集。它们通常是神秘的。
为了使结果集更有意义,可以使用SQL列别名。使用AS关键字将列别名指定给SELECT子句中的列。

例如:

1
2
3
4
SELECT productid AS product,
listprice AS price
FROM item
WHERE listprice >70

在上面的SELECT语句中,我们使用了两个列别名。第一列别名是product,表示productid列,第二列别名是price,表示listprice列。

AS关键字是可选的,因此可以省略AS关键字。如果列别名包含空格,则必须将使用双引号把别名括起来。

比如:

1
2
3
4
SELECT productid product,
listprice "list price"
FROM item
WHERE listprice >70

SQL表的别名

在某些情况下,当查询中使用了多个具有相同列名的表时,必须同时使用表名和列名来引用该列,以避免列名混淆的错误。

1
table_name.column_name

但是如果表名很长,这样写语句就很长,所以SQL提供了给查询中的表分配一个别名的方法。
表别名出现在SELECT语句的FROM子句中表的名称之后。

通常是在多次引用同一个张表或者表名太长时使用表别名。

例如,可以通过对employees表进行自连接查询来查看组织结构:

1
2
3
4
SELECT E.lastname "员工",
M.lastname "经理"
FROM employees AS E
INNER JOIN employees M ON M.employeeID = E.ReportsTo

同样, AS是可以省略的。

在上面的查询中,我们引用了两次employees表,因此,我们必须使用表别名:E表示employee, M表示manager。

我们经常在使用子查询、自连接和内连接子句的语句时使用SQL别名。


原文链接:https://codingdict.com/