返回首页

gbase数据、南大通用产品文档:GBase8s总结

更新日期:2024年09月11日

每当多个程序并发地访问一个数据库(且当其中至少有一个可修改数据时,)所有程序必
须允许在它们读数据时,另一程序可更改该数据的可能性。数据库服务器提供锁和隔离级
别的机制,其通常允许程序运行,如同它们独占数据一样。
SET STATEMENT CACHE 语句允许您将反复地使用的相同的 SQL 语句存储在缓冲区中。
当打开语句高速缓存时,数据库服务器存储相同的语句,因此可在不同的用户会话之中重
用它们,而无需为每个会话都分配内存。



GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司
- 262 -
12 创建和使用 SPL 例程
本部分描述如何创建和使用 SPL 例程。
SPL 例程是以 GBase 8s
“存储过程语言”
(SPL)
编写的用户定义的例程。GBase 8s SPL 是提供流控制的 SQL 的扩展,诸如循环和分支。
在数据库上有 Resource 权限的任何人都可创建 SPL 例程。
尽可能地解析和优化以 SQL 编写的例程,然后以可执行的格式存储在系统目录表中。对
于 SQL 密集的任务,SQL 例程可能是一个好的选择。SPL 例程可执行以 C 或其他外部
语言编写的例程,且外部的例程可执行 SPL 例程。
您可使用 SPL 例程来执行您可以 SQL 执行的任何任务,
且可扩展您可单独使用 SQL 完
成的任务。由于 SQPL 是数据库的本地语言,且当创建 SPL 例程而不是在运行时时,解
析和优化 SPL 例程,对于某些任务,SPL 例程可提升性能。SPL 例程还可减少客户机应
用程序与数据库服务器之间的流量并降低程序复杂度。
在 GBase 8s SQL 指南:语法 中描述每一 SPL 语句的语法。每一语句都配有示例。

显示主机属性
使用“显示主机属性”功能,您可以修改所选用户的主机的属性。
在“对象资源管理器”中,右键单击“用户管理”节点下的具体用户节点
中的主机节点,选择菜单中的“属性”菜单项,如下图所示:

GBase 8a MPP Cluster 管理工具手册

- 102 -

南大通用数据技术股份有限公司

图 7-91 主机属性菜单项
选择“属性”菜单项后,管理工具会打开主机属性对话框,如下图所示:



GBase 8a MPP Cluster 管理工具手册
南大通用数据技术股份有限公司

- 103 -

图 7-92 主机属性对话框

关键字 SET 之后的每一赋值都为列指定新的值。
那个值统一地应用于您更新的每一行。

前面部分中的示例中,新的值为常量,但您可指定任意表达式,包括基于列值本身的表达
式。假设制造商 HRO 已将所有价格提高百分之五,且您必须更新 stock 表来反映此提价。
请使用下列语句:
UPDATE stock
SET unit_price = unit_price * 1.05
WHERE manu_code = 'HRO';
您还可使用子查询作为指定的值的一部分。当使用子查询作为表达式的元素时,它必须恰
好返回一个值(一列和一行)。对于任何库存编号,或许您决定必须收取比那种产品的任
何制造商都更高的价格。
您需要更新所有未装运的订单的价格。
下列示例中的 SELECT 语
句指定该标准:
UPDATE items
SET total_price = quantity *
(SELECT MAX (unit_price) FROM stock
WHERE stock.stock_num = items.stock_num)

GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司
- 175 -
WHERE items.order_num IN
(SELECT order_num FROM orders
WHERE ship_date IS NULL);
第一个 SELECT 语句返回单个值:在 stock 表中,对于某个特定的产品的最高价格。第一
个 SELECT 语句是一个相关联的子查询,
因为当来自items 的值出现在第一个 SELECT 语
句的 WHERE 子句中时,您必须为您更新的每一行都执行该查询。
第二个 SELECT 语句产生未装运的订单的订单编号的一个列表。
它是一个执行一次的非相
关的子查询。