SQL 别名
SQL 别名
SQL 别名用于为表或表中的列赋予临时名称。
别名通常用于使列名更易读。
别名仅在该查询的持续时间内存在。
别名使用 AS
关键字创建。
AS 是可选的
实际上,在大多数数据库语言中,您可以跳过 AS 关键字并获得相同的结果
语法
当别名用于列时
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 | 7/4/1996 | 3 |
10249 | 81 | 6 | 7/5/1996 | 1 |
10250 | 34 | 4 | 7/8/1996 | 2 |
列别名
以下 SQL 语句创建了两个别名,一个用于 CustomerID 列,另一个用于 CustomerName 列
在别名中使用空格字符
如果希望别名包含一个或多个空格,例如 "My Great 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;
表别名
当您希望使用表的别名时,相同的规则适用。
在表上使用别名似乎没有用,但是当您在查询中使用多个表时,它可以使 SQL 语句更短。
以下 SQL 语句从 CustomerID=4 (Around the Horn) 的客户那里选择所有订单。我们使用“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;
亲自尝试 »
别名在以下情况下很有用
- 查询涉及多个表
- 查询中使用了函数
- 列名很大或不够易读
- 将两个或多个列组合在一起