SQL 别名(Aliases)
通过使用 SQL,可以为表名称或列名称指定别名(Alias)。
- SQL 别名用于为表或表中的列提供临时名称,数据库中的实际表名不会更改。
- SQL 别名通常用于使列名更具可读性。
- SQL 一个别名只存在于查询期间。
- 表别名的使用是在特定SQL语句中重命名表。
- 列别名用于为特定SQL查询重命名表的列。
列的 SQL Alias 语法
SELECT column_name AS alias_name |
表的 SQL Alias 语法
SELECT column_name(s) |
演示数据库
在本教程中,我们将使用著名的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 |
列的 Alias 实例
以下SQL语句创建两个别名,一个用于CustomerID列,另一个用于CustomerName列:
示例
SELECT CustomerID as ID, CustomerName AS Customer |
以下SQL语句创建两个别名,一个用于CustomerName列,一个用于ContactName列。注: 如果别名包含空格,则需要双引号或方括号:
示例
SELECT CustomerName AS Customer, ContactName AS [Contact Person] |
以下SQL语句创建一个名为”Address”的别名,它包含四列(Address,PostalCode,City and Country):
SELECT CustomerName, Address + ', ' + PostalCode + ', ' + City + ', ' + Country AS Address |
** 注意:** 要使上面的SQL语句在MySQL中工作,请使用以下命令:
SELECT CustomerName, CONCAT(Address,', ',PostalCode,', ',City,', ',Country) AS Address |
表的 Alias 实例
以下SQL语句选择CustomerID = 4(”围绕角”)的所有订单。我们使用”Customers”和”Orders”表,给它们分别为”c”和”o”的表别名(这里我们使用别名来使SQL更短):
示例
SELECT o.OrderID, o.OrderDate, c.CustomerName |
以下SQL语句与上述相同,但没有别名:
示例
SELECT Orders.OrderID, Orders.OrderDate, Customers.CustomerName |
在下列情况下使用别名是有用的:
- 查询涉及多个表
- 用于查询函数
- 需要把两个或更多的列放在一起
- 列名长或可读性差
示例
考虑下面两个数据表:
(a)CUSTOMERS 表,如下:
+----+----------+-----+-----------+----------+ |
(b)另一个是 ORDERS 表,如下所示:
+-----+---------------------+-------------+--------+ |
下面是表别名的用法:
SQL> SELECT C.ID, C.NAME, C.AGE, O.AMOUNT |
上面语句的运行结果如下所示:
+----+----------+-----+--------+ |
下面是列别名的用法:
SQL> SELECT ID AS CUSTOMER_ID, NAME AS CUSTOMER_NAME |
其运行结果如下所示:
+-------------+---------------+ |