通过使用 SQL,可以为表名称或列名称指定别名(Alias)。

别名的作用

  • SQL 别名用于为表或表中的列提供临时名称。 
  • SQL 别名通常用于使列名更具可读性。 
  • SQL 一个别名只存在于查询期间。 

使用别名的场景

在下列情况下使用别名是有用的: 

  • 查询涉及多个表 
  • 用于查询函数
  • 需要把两个或更多的列放在一起
  • 列名长或可读性差

列的别名语法

SELECT column_name AS alias_name

FROM table_name;

表的别名语法

SELECT column_name(s) 

FROM table_name AS alias_name;

示例数据库

以下是"Customers" 表中的数据:

sql server 查询语句别名 sql查询结果起别名_Customer

下面是选自 "Orders" 表的数据:

sql server 查询语句别名 sql查询结果起别名_重命名_02

列的别名实例

以下SQL语句创建两个别名,一个用于客户ID列,另一个用于姓名列:

实例



SELECT 客户ID AS CustomerID, 
姓名  AS Customer 
FROM  Customers;



结果如下:

sql server 查询语句别名 sql查询结果起别名_SQL_03

:查询出来的列名会以别名的形式显示,不再显示原来的列名,但是物理表的列名还是没变,这样在不影响表结构的前提下,可以根据实际需要重命成自己想要的名称。

以下SQL语句创建两个别名,一个用于姓名列,一个用于城市列。

注:如果别名包含空格,则需要双引号或方括号: 

实例



SELECT 姓名 AS Customer, 
城市 AS [City Name] 
FROM Customers;



结果如下:

sql server 查询语句别名 sql查询结果起别名_重命名_04

以下SQL语句创建一个名为“地址”的别名,它包含四列(姓名,省份,城市,地址和邮编):



SELECT 姓名,
 省份 +
 城市 +
 地址 + ',邮编:' + 
 邮编  AS 地址 
 FROM Customers;



结果如下:

sql server 查询语句别名 sql查询结果起别名_SQL_05

注:如果我们不使用AS,上面的地址列就会显示 (无列名)

注意:要使上面的SQL语句在MySQL中工作,请使用以下命令: 



SELECT 姓名,
 CONCAT(地址,
 省份,
 城市,
 ',邮编:',
 邮编
 ) AS 地址
 FROM Customers;



:Mysql中的字符拼接需要使用CONCAT函数,不能直接使用+

表别名实例

以下SQL语句创建两个列别名,一个用于姓名列,一个用于订单日期列,同时创建两个表列名,分别用于Customers表和Orders表



SELECT 
c.姓名 AS Customer,
o.订单日期 AS Orderdate 
FROM Customers AS c
JOIN Orders AS o 
ON c.客户ID=o.客户ID



结果如下:

sql server 查询语句别名 sql查询结果起别名_重命名_06

:上面我们分别对表名和列名进行了重命名,需要注意的是ON和WHERE以及其他涉及条件筛选的地方,不能使用重命名后的名称,GROUP BY 也不行。此外在进行重命名时AS是可以省略的。

批注

AS别名在多表进行关联时可以很好的处理表名相同的情况,比如两个表都存在姓名列,可以将A表的姓名命名成A_NAME,B表的姓名命名成B_NAME,这样在阅读代码时候可以一目了然。此外AS一般只对查询的列和表以及ORDER BY重命名后的别名才有效,其他地方还是需要使用原始列名。