13.1 使用表别名
第7课介绍了如何使用别名引用被检索的表列。给列起别名的语法如下:
输入▼
SELECT RTRIM(vend_name) + ' (' + RTRIM(vend_country) + ')'
AS vend_title
FROM Vendors
ORDER BY vend_name;
SQL除了可以对列名和计算字段使用别名,还允许给表名起别名。这样做有两个主要理由:
- 缩短SQL语句;
- 允许在一条
SELECT
语句中多次使用相同的表。
请看下面的SELECT
语句。它与前一课例子中所用的语句基本相同,但改成了使用别名:
输入▼
SELECT cust_name, cust_contact
FROM Customers AS C, Orders AS O, OrderItems AS OI
WHERE C.cust_id = O.cust_id
AND OI.order_num = O.order_num
AND prod_id = 'RGAN01';
分析▼
可以看到,FROM
子句中的三个表全都有别名。Customers AS C
使用C
作为Customers
的别名,如此等等。这样,就可以使用省略的C
而不用全名Customers
。在这个例子中,表别名只用于WHERE
子句。其实它不仅能用于WHERE
子句,还可以用于SELECT
的列表、ORDER BY
子句以及其他语句部分。
警告:Oracle中没有
AS
Oracle不支持AS
关键字。要在Oracle中使用别名,可以不用AS
,简单地指定列名即可(因此,应该是Customers C
,而不是Customers AS C
)。
需要注意,表别名只在查询执行中使用。与列别名不一样,表别名不返回到客户端。