可以使用别名,INTO TEMP 子句和显示标注来加快连接和多表查询,并生成输出以用于
其它用途。
别名 GBase 8s SQL 指南:教程
可以在 SELECT 语句的 FROM 子句中将别名指定给表,以使多表查询更节省时间,可读
性更高。每当要使用表名时,就可以使用别名,例如:在其他子句中作为列名的前缀。
图: 查询
SELECT s.stock_num, s.manu_code, s.description,
s.unit_price, c.catalog_num,
c.cat_advert, m.lead_time
FROM stock s, catalog c, manufact m
WHERE s.stock_num = c.stock_num
AND s.manu_code = c.manu_code
AND s.manu_code = m.manu_code
AND s.manu_code IN ('HRO', 'HSK')
AND s.stock_num BETWEEN 100 AND 301
ORDER BY catalog_num;
SELECT 语句的相关特性允许您在定义别名之前使用别名。在此查询中,stock 表的别名是 s,
catalog 表的别名是 c,manufact 表的别名是 m,它们分别在 FROM 子句中指定。并在整个
SELECT 和 WHERE 子句中用作列前缀。
将图 1 的长度与下列查询比较,后者不使用别名。
图: 查询
SELECT stock.stock_num, stock.manu_code, stock.description,
stock.unit_price, catalog.catalog_num,
catalog.cat_advert,
manufact.lead_time
FROM stock, catalog, manufact
WHERE stock.stock_num = catalog.stock_num
AND stock.manu_code = catalog.manu_code
AND stock.manu_code = manufact.manu_code
AND stock.manu_code IN ('HRO', 'HSK')
AND stock.stock_num BETWEEN 100 AND 301
ORDER BY catalog_num;
图 1 和 图 2 是等价的且都检索到以下查询显示的数据。
图: 查询结果
stock_num 110
manu_code HRO
description helmet
unit_price $260.00 GBase 8s SQL 指南:教程
catalog_num 10033
cat_advert Lightweight Plastic with Vents Assures Cool
Comfort Without Sacrificing Protection
lead_time 4
stock_num 110
manu_code HSK
description helmet
unit_price $308.00
catalog_num 10034
cat_advert Teardrop Design Used by Yellow Jerseys; You
Can Time the Difference
lead_time 5
⋮
不能将 ORDER BY 子句用于 TEXT 列 cat_descr 或 BYTE 列 cat_picture。
可以使用别名来缩短对不在当前数据库中的表的查询时间。
下列查询连接驻留在不同数据库和系统(均不是当前数据库或系统)中的 2 个表中的列。
图: 查询
SELECT order_num, lname, fname, phone
FROM masterdb@central:customer c, sales@western:orders o
WHERE c.customer_num = o.customer_num
AND order_num <= 1010;
通过分别将 c 和 o 指定给长 database@system:table 名
称 masterdb@central:customer 和 sales@western:orders,您可以使用别名来缩短 WHERE 子
句中的表达式并检索数据,如下所示。
图: 查询结果
order_num lname fname phone
1001 Higgins Anthony 415-368-1100
1002 Pauli Ludwig 408-789-8075 GBase 8s SQL 指南:教程
1003 Higgins Anthony 415-368-1100
1004 Watson George 415-389-8789
1005 Parmelee Jean 415-534-8822
1006 Lawson Margaret 415-887-7235
1007 Sipes Arnold 415-245-4578
1008 Jaeger Roy 415-743-3611
1009 Keyes Frances 408-277-7245
1010 Grant Alfred 415-356-1123
有关如何访问不在当前数据库中的表的更多信息,请参阅访问其他数据库服务器和《GBase8s SQL 指南:语法》。
还可以使用同义词作为不在当前数据库中的表以及当前表和视图的长名称的简写引用。




