暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

某些查询快捷方式

淮海路小佩奇 2023-09-15
103

可以使用别名,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 指南:语法》。

还可以使用同义词作为不在当前数据库中的表以及当前表和视图的长名称的简写引用。 

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论