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 表中的部分数据
客户
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 |
订单
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;
自己动手试一试 »
注意:要在 MySQL 中运行上述 SQL 语句,请使用以下代码
MySQL 示例
SELECT CustomerName, CONCAT(Address,', ',PostalCode,', ',City,', ',Country) AS Address
FROM Customers;
自己动手试一试 »
注意:要在 Oracle 中运行上述 SQL 语句,请使用以下代码
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;
自己动手试一试 »
别名在以下情况很有用:
- 查询中涉及多个表
- 查询中使用了函数
- 列名过长或不易读
- 组合了两个或多个列