SQL 别名用于为表或表中的列提供临时名称。
别名通常用于使列名更具可读性。
别名仅在该查询期间存在。
别名是用以下命令创建的AS
关键字。
实际上,在大多数数据库语言中,您可以跳过 AS 关键字并获得相同的结果:
当列上使用别名时:
SELECT column_name AS alias_name
FROM table_name;
当表使用别名时:
SELECT column_name(s)
FROM table_name AS alias_name;
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" 的别名,该别名组合了四列(地址、邮政编码、城市和国家/地区):
SELECT CustomerName, Address + ', ' + PostalCode + ' ' + City + ', ' + Country AS Address
FROM Customers;
亲自试一试 »
笔记:要使上面的 SQL 语句在 MySQL 中运行,请使用以下命令:
SELECT CustomerName, CONCAT(Address,', ',PostalCode,', ',City,', ',Country) AS Address
FROM Customers;
亲自试一试 »
笔记:要使上面的 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;
亲自试一试 »
别名在以下情况下很有用:
截取页面反馈部分,让我们更快修复内容!也可以直接跳过填写反馈内容!