13.1 使用表别名

第7课介绍了如何使用别名引用被检索的表列。给列起别名的语法如下:

输入▼

  1. SELECT RTRIM(vend_name) + ' (' + RTRIM(vend_country) + ')'
  2. AS vend_title
  3. FROM Vendors
  4. ORDER BY vend_name;

SQL除了可以对列名和计算字段使用别名,还允许给表名起别名。这样做有两个主要理由:

  • 缩短SQL语句;
  • 允许在一条SELECT语句中多次使用相同的表。

请看下面的SELECT语句。它与前一课例子中所用的语句基本相同,但改成了使用别名:

输入▼

  1. SELECT cust_name, cust_contact
  2. FROM Customers AS C, Orders AS O, OrderItems AS OI
  3. WHERE C.cust_id = O.cust_id
  4. AND OI.order_num = O.order_num
  5. 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)。

需要注意,表别名只在查询执行中使用。与列别名不一样,表别名不返回到客户端。