轻松上手,快乐学习!

SQL 别名


SQL 别名

SQL别名用于为表或表中的列提供临时名称。

别名通常用于使列名更具可读性。

别名仅在查询期间存在。

别名列语法

SELECT column_name AS alias_name
FROM table_name;

别名表语法

SELECT column_name(s)
FROM table_name AS alias_name;

演示数据库

在本教程中,我们将使用着名的Northwind示例数据库。

以下是“Customers”表中的一个选择:

CustomerID CustomerName ContactName Address City PostalCode Country
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constituciуn 2222 Mйxico D.F. 05021 Mexico
3 Antonio Moreno Taquerнa Antonio Moreno Mataderos 2312 Mйxico D.F. 05023 Mexico
4 Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK

并从“Orders”表中选择:

OrderID CustomerID EmployeeID OrderDate ShipperID
10354 58 8 1996-11-14 3
10355 4 6 1996-11-15 1
10356 86 6 1996-11-18 2

列的别名示例

以下SQL语句创建两个别名,一个用于CustomerID列,另一个用于CustomerName列:

实例

SELECT CustomerID AS ID, CustomerName AS Customer
FROM Customers;

运行实例»

以下SQL语句创建两个别名,一个用于CustomerName列,另一个用于ContactName列。注意:如果别名包含空格,则需要双引号或方括号:

实例

SELECT CustomerName AS Customer, ContactName AS [Contact Person]
FROM Customers;

运行实例»

以下SQL语句创建一个名为“Address”的别名,该别名组合了四列(Address,PostalCode,City和Country):

实例

SELECT CustomerName, Address + ', ' + PostalCode + ' ' + City + ', ' + Country AS Address
FROM Customers;

运行实例»

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

SELECT CustomerName, CONCAT(Address,', ',PostalCode,', ',City,', ',Country) AS Address
FROM Customers;

表的别名实例

以下SQL语句选择客户的所有订单,其中CustomerID = 4(在非洲之角)。我们使用“Customers”和“Orders”表,并分别为它们提供“c”和“o”的表别名(这里我们使用别名来缩短SQL):

实例

SELECT o.OrderID, o.OrderDate, c.CustomerName
FROM Customers AS c, Orders AS o
WHERE c.CustomerName="Around the Horn" AND c.CustomerID=o.CustomerID;

运行实例»

以下SQL语句与上面相同,但没有别名:

实例

SELECT Orders.OrderID, Orders.OrderDate, Customers.CustomerName
FROM Customers, Orders
WHERE Customers.CustomerName="Around the Horn" AND Customers.CustomerID=Orders.CustomerID;

运行实例»

别名通常在如下情况使用:

  • 查询中涉及多个表
  • 在查询中使用函数
  • 列名很长或不太可读
  • 将两个或更多列组合在一起