返回首页

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

更新日期:2024年09月11日

本章介绍了用于查询关系数据库的基本 SELECT 语句类型的语法示例和结果。单个表的
SELECT 语句一节显示了如何执行以下操作:

使用 Projection 和 FROM 子句从表中选择列和行

使用 Projection 、FROM 和 WHERE 子句从表中选择行

在 Projection 子句中使用 DISTINCT 或 UNIQUE 关键字来消除查询结果中重复
的行

使用 ORDER BY 子句和 DESC 关键字来排序检索的数据

选择包含非英语字符的数据值并对其排序

在 WHERE 子句中使用 BETWEEN 、IN 、MATCHES 和 LIKE 关键字以及各
种关系运算符来创建比较条件

创建包括值、排除值、查找一定范围内的值(使用关键字、关系运算符和下标)查
找值的子集的比较条件

使用精确文本比较、变长通配符和受限及非受限通配符来执行变量文本搜索

使用逻辑运算符 AND 、OR 和 NOT 来在 WHERE 子句中连接搜索条件或
Boolean 表达式

使用 ESCAPE 关键字来保护查询中的特殊字符

在 WHERE 子句中使用 IS NULL 和 IS NOT NULL 关键字来搜素 NULL 值

使用 FIRST 子句指定查询只返回符合 SELECT 语句的条件的指定书目的行

在 Projection 子句中使用算术运算符对数字字段执行计算并显示派生数据

将显示标签指定个计算列作为用于报告的格式化工具
本章还介绍了简单连接条件,使您能够从两个或多个表中选择和显示数据。多表 SELECT
语句一节描述了如何执行下列操作:

创建笛卡尔积

创建 CROSS JOIN,它创建笛卡尔积

在查询中将 WHERE 子句与有效连接条件包括在一起以抑制笛卡尔积

定义和创建自然连接和等值连接

GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司 - 70 -


在一列或多列上连接两个或多个表

在多表查询中使用别名作为快捷方式

使用 INTO TEMP 子句将选择的数据检索到独立的临时表中,
以便在数据库外部执
行计算

4 从复杂类型选择数据
本章描述如何查询复杂数据类型。复杂数据类型是使用 SQL 类型构造函数从其他数据类
型的组合构建的。SQL 语句可以访问复杂数据类型中的个别组件。复杂数据类型是行类型
或集合类型。
ROW 类型具有组合一个或多个相关数据字段的实例。这两种 ROW 类型是已命名和未命
名。
集合类型具有这样的实例:在其中,每种集合值包含具有相同数据类型的一组元素,这些
数据类型可以是任何基本或复杂数据类型。集合可以由 LIST 、SET 或 MULTISET 数据
类型组成。
重要: 对于复杂数据类型没有跨数据库的支持。只能在本地数据库中对它们进行操作。
有关数据库服务器支持的数据类型的更完整描述,请参阅《GBase 8s SQL 参考指南》中的
数据类型一章。
有关如何创建使用复杂类型的信息,
请参阅
《GBase 8s 数据库设计和实现指南 》

《GBase
8s SQL 参考指南》和《GBase 8s SQL 指南:语法》 。

在您可访问和处理简单的或嵌套的集合的个别元素之前,您必须执行下列任务:

声明集合变量来保存该集合。

声明元素变量来保存集合的个别元素。

将集合从数据库选择至集合变量内。
在您做了这些初始的步骤之后,您可将元素插入到集合内,或选择或处理已在集合中的元
素。
在下列部分中,使用 numbers 表为示例,说明每一步骤。
提示: 您可在任何 SPL 例程中处理集合。

声明集合变量
在您可从数据库将集合检索至 SPL 例程内之前,
您必须声明集合变量。
下图展示如何声明
集合变量来从 numbers 表检索 primes 列。
图: 声明集合变量。
DEFINE p_coll SET( INTEGER NOT NULL );
DEFINE 语句声明集合变量 p_coll,
其类型与存储在 primes 列中的集合的数据类型相匹配。


声明元素变量
在您声明集合变量之后,请声明元素变量来保存该集合的个别元素。元素变量的数据类型
必须与集合元素的数据类型相匹配。
例如,要保存 primes 列中 SET 的元素,请使用诸如下图所示的一种元素变量声明。
图: 元素变量声明。
DEFINE p INTEGER;
要声明保存 twin_primes 列的元素的变量,其保存嵌套的集合,请使用诸如下图所示的一种
变量声明。
图: 变量声明。

GBase 8s SQL 指南:教程
南大通用数据技术股份有限公司
- 300 -
DEFINE s SET( INTEGER NOT NULL );
变量 s 保存整数的 SET。每一 SET 是存储在 twin_primes 中的 LIST 的一个元素。

将集合选择至集合变量内
在您声明集合变量之后,您可将集合访存至它内。要将集合访存至集合变量内,请输入
SELECT INTO 语句,该语句从数据库将集合列选择至您已命名了的集合变量内。
例如,要选择保存在 numbers 的 primes 列的一行中的集合,请添加 SELECT 语句至您的
SPL 例程,诸如下图展示的一个。
图: 添加 SELECT 语句来选择存储在一行中的集合。
SELECT primes INTO p_coll FROM numbers
WHERE id = 220;
SELECT 语句中的 WHERE 子句指定您想要选择只存储在 numbers 的一行中的集合。
该语
句将集合放置到集合变量 p_coll 内,图 1 声明它。
现在,变量 p_coll 保存来自 primes 列的集合,它会包含值 SET {5,7,31,19,13}。

dcf_log_level
参数说明:DCF 日志级别。
该参数属于SIGHUP 类型参数,请参考表15-1 中对应设置方法进行设置。
取值范围:字符串

关闭日志:“NONE”,NONE 表示关闭日志打印,不能与以下日志级别混合使用。

开启日志:
“RUN_ERR|RUN_WAR|RUN_INF|DEBUG_ERR|DEBUG_WAR|DEBUG_INF|TRAC
E|PROFILE|OPER”

日志级别可以从上述字符串中选取字符串并使用竖线组合使用,不能配置空串。
默认值:“RUN_ERR|RUN_WAR|DEBUG_ERR|OPER|RUN_INF|PROFILE”