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;
演示数据库
以下是在实例中使用的 Customers 和 Orders 表的片段:
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 的别名,它组合了四个列(Address、PostalCode、City 和 Country):
实例
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;
在表上使用别名似乎没什么用,但在连接表时,它就很有意义了。
在以下示例中,c 是 customers 的别名,o 是 orders 的别名,使查询更短、更易读:
实例
SELECT c.CustomerName, o.OrderID FROM customers AS c JOIN orders AS o ON c.customerID = o.customerID;
您将在后续章节中学习更多关于 SQL 连接 的知识。
别名在以下情况下非常有用:
- 查询中涉及多个表
- 查询中使用了函数
- 列名较长或可读性较差
- 两个或多个列被组合在一起