SELECT 语句

使用 SELECT 语句来从数据库或从 SPLGBase 8s ESQL/C 集合变量检索值。SELECT 操作称为查询

满足该查询的特定的查询条件的行或值称为符合条件的行或值。在应用任何附加的逻辑条件之后,该查询检索到的其调用上下文称为该查询的结果集。此结果集可为空。

语法

Select 选项
元素 描述 限制 语法
column 在 FETCH 之后可被更新的列的名称 必须在 FROM 子句表中,但不需要在 Projection 子句的选择列表中 标识符

用法

SELECT 语句可从当前数据库中,或当前数据库服务器的另一数据库中,或另一数据库服务器的数据库中的表返回数据。 仅 SELECT 关键字、Projection 子句和 FROM 子句是必需的规范。

对于包括 CONNECT BY 子句的层级查询,FROM 子句仅可指定单个表,该表必须驻留在连接到当前会话的 GBase 8s 数据库服务器实例的本地数据库中。

对于包括 GRID 子句的查询,在 GRID 子句指定的每个节点上,FROM 子句指定的每一表的实例必须有相同的模式、相同的数据库语言环境和相同的代码集。

SELECT 语句只能引用 CREATE EXTERNAL TABLE 语句已指定的一个外部表。在复合查询中,仅可在最外部的查询中指定此外部表。您不可在子查询中引用外部表。

您需要对该数据库的 Connect 访问权限来执行查询,以及对该查询要从其检索行的表对象的 Select 权限。

SELECT 语句可包括各种基本的子句,标识在下列列表中。
子句   作用
优化程序伪指令   指定该查询应如何实现
Projection 子句   指定要从数据库读的项的列表
INTO 子句   指定接收结果集的变量
FROM 子句   指定 Projection 子句项的数据源
表或视图的别名   查询中表或列的临时名称
表表达式   定义派生的表作为查询数据源
横向的派生的表   定义查询中相关联的表引用
ONLY 关键字   排除孩子表作为类型表的查询中的数据源
迭代器函数   反复地返回值作为数据源的函数
符合 ANSI 的连接   符合 ISO/ANSI 语法标准的连接查询
GBase 8s 扩展外连接   基于隐式的 LEFT OUTER 连接的查询语法
GRID 子句   指定存储网格查询的表的节点
使用 ON 子句   指定连接条件作为连接前过滤器
SELECT 的 WHERE 子句   对符合条件的行和连接后过滤器设置条件
层级查询子句   为层级数据的查询设置条件
GROUP BY 子句   将行的组组合到汇总结果内
HAVING 子句   对汇总结果设置条件
ORDER BY 子句   根据列值对符合条件的行排序
ORDER SIBLINGS BY 子句   在每个级别为兄弟层级数据排序
FOR UPDATE 子句   在 FETCH 之后启用结果集的更新
FOR READ ONLY 子句   在 FETCH 之后禁用结果集的更新
INTO TEMP 子句   将结果集放到临时表内
INTO EXTERNAL 子句   在外部表中存储查询结果集
INTO STANDARD 和 INTO RAW 子句   在永久数据库表中存储查询结果集
UNION ALL 运算符   组合两个 SELECT 语句的结果集
UNION 运算符   与 UNION ALL 相同,但废弃重复的行
INTERSECT 运算符   从两个查询结果集返回不同的公共行
MINUS 运算符   仅返回两个查询返回的第一个不同的行。

接下来的部分描述这些和 SELECT 语句的其他子句。

1 GBase 8s 扩展
2 请参阅 在组合的查询中的集合运算符
3 仅限于 GBase 8s ESQL/C
4 请参阅 优化程序伪指令
5 请参阅 Projection 子句
6 请参阅 INTO 子句
7 请参阅 FROM 子句
8 请参阅 SELECT 的 WHERE 子句
9 请参阅 GROUP BY 子句
10 请参阅 HAVING 子句
11 请参阅 ORDER BY 子句
12 请参阅 INTO table 子句
13 请参阅 层级查询子句
14 仅限于 GBase 8s ESQL/C 和 SPL 例程
15 请参阅 GRID 子句