SQL 别名

SQL 别名

SQL 别名用于为列或表指定临时名称。

别名用于提高列名的可读性。

别名仅在该查询的持续时间内存在。

别名使用 AS 关键字创建。

列的别名

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

实例

SELECT CustomerID AS ID, CustomerName AS Customer
FROM Customers;

亲自试一试

语法

列的别名:

SELECT column_name AS alias_name
FROM table_name;

表的别名:

SELECT column_name(s)
FROM table_name AS alias_name;

演示数据库

以下是在实例中使用的 CustomersOrders 表的片段:

Customers

CustomerID CustomerName ContactName Address City PostalCode Country
1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
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

Orders

OrderID CustomerID EmployeeID OrderDate ShipperID
10248 90 5 1996-07-04 3
10249 81 6 1996-07-05 1
10250 34 4 1996-07-08 2

带空格的别名

如果您希望别名包含一个或多个空格,例如 My Great Products,请使用方括号或双引号将别名括起来:

实例

使用方括号 [] 为别名添加空格:

SELECT ProductName AS [My Great Products]
FROM Products;

亲自试一试

或者:

实例

使用双引号 "" 为别名添加空格:

SELECT ProductName AS "My Great Products"
FROM Products;

亲自试一试

注意:某些数据库系统同时支持 []"",而有些系统仅支持其中一种。

连接列

以下 SQL 创建了一个名为 Address 的别名,它组合了四个列(AddressPostalCodeCityCountry):

实例

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

亲自试一试

提示:要使上述 SQL 语句在 MySQL 中运行,请使用以下语句:

MySQL 示例

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

亲自试一试

提示:要使上述 SQL 语句在 Oracle 中运行,请使用以下语句:

Oracle 示例

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

表的别名

当您想为表使用别名时,适用相同的规则。

实例

Customers 表称为 Persons

SELECT * FROM Customers AS Persons;

亲自试一试

在表上使用别名似乎没什么用,但在连接表时,它就很有意义了。

在以下示例中,ccustomers 的别名,oorders 的别名,使查询更短、更易读:

实例

SELECT c.CustomerName, o.OrderID
FROM customers AS c
JOIN orders AS o ON c.customerID = o.customerID;

亲自试一试

您将在后续章节中学习更多关于 SQL 连接 的知识。

别名在以下情况下非常有用:

  • 查询中涉及多个表
  • 查询中使用了函数
  • 列名较长或可读性较差
  • 两个或多个列被组合在一起