接下来,我们讨论 alias (别名) 在 SQL 上的用处。最常用到的别名有两种:栏位别名及表
格别名
简单地来说,栏位别名的目的是为了让 SQL 产生的结果易读。在之前的例子中,每当我们
有营业额总合时,栏位名都是 SUM(sales)。虽然在这个情况下没有什么问题,可是如果这
个栏位不是一个简单的总合,而是一个复杂的计算,那栏位名就没有这么易懂了。若我们用
栏位别名的话,就可以确认结果中的栏位名是简单易懂的。
第二种别名是表格别名。要给一个表格取一个别名,只要在 FROM 子句中的表格名后空一
格,然后再列出要用的表格别名就可以了。这在我们要用 SQL 由数个不同的表格中获取资
料时是很方便的。这一点我们在之后谈到连接 (join) 时会看到。
我们先来看一下栏位别名和表格别名的语法:
SELECT "表格别名"."栏位1" "栏位别名"
FROM "表格名" "表格别名"
基本上,这两种别名都是放在它们要替代的物件后面,而它们中间由一个空白分开。我们继
续使用 Store_Information 这个表格来做例子:
Store_Information 表格
SELECT A1.store name Store, SUM(A1,Sales) "Total Sales"
FROM Store Information A1
GROUP BY A1,store_name
结果:
Store Total Sales
Los Angeles $1800
San Diego $250
Boston $700
在结果中,资料本身没有不同。不同的是栏位的标题。这是运用栏位别名的结果。在第二个
栏位上,原本我们的标题是 "Sum(Sales)",而现在我们有一个很清楚的 "Total Sales"。很明
显地, "Total Sales" 能够比 "Sum(Sales)" 更精确地阐述这个栏位的含意。通过使用 SQL,可以为列名称和表名称指定别名(Alias)。
SQL Alias
表的 SQL Alias 语法
SELECT column_name(s)
FROM table_name
AS alias_name
列的 SQL Alias 语法
SELECT column_name AS alias_name
FROM table_name
Alias 实例: 使用表名称别名
假设我们有两个表分别是:"Persons" 和 "Product_Orders"。我们分别为它们指定别名 "p" 和 "po"。
现在,我们希望列出 "John Adams" 的所有定单。
我们可以使用下面的 SELECT 语句:
SELECT po.OrderID, p.LastName, p.FirstName FROM PersonsAS p
, Product_OrdersAS po
WHERE p.LastName='Adams' AND p.FirstName='John'
不使用别名的 SELECT 语句:
SELECT Product_Orders.OrderID, Persons.LastName, Persons.FirstName FROM Persons, Product_Orders WHERE Persons.LastName='Adams' AND Persons.FirstName='John'
从上面两条 SELECT 语句您可以看到,别名使查询程序更易阅读和书写。
Alias 实例: 使用一个列名别名
表 Persons:
Id | LastName | FirstName | Address | City |
---|---|---|---|---|
1 | Adams | John | Oxford Street | London |
2 | Bush | George | Fifth Avenue | New York |
3 | Carter | Thomas | Changan Street | Beijing |
SQL:
SELECT LastName AS Family
, FirstName AS Name //SELECT LastName AS Family, FirstName AS Name
结果:
Family | Name |
---|---|
Adams | John |
Bush | George |
Carter | Thomas |