使用 SELECT 语句来从数据库或从 SPL 或 GBase 8s ESQL/C 集合变量检索值。SELECT 操作称为查询。
满足该查询的特定的查询条件的行或值称为符合条件的行或值。在应用任何附加的逻辑条件之后,该查询检索到的其调用上下文称为该查询的结果集。此结果集可为空。
SELECT 语句可从当前数据库中,或当前数据库服务器的另一数据库中,或另一数据库服务器的数据库中的表返回数据。 仅 SELECT 关键字、Projection 子句和 FROM 子句是必需的规范。
对于包括 CONNECT BY 子句的层级查询,FROM 子句仅可指定单个表,该表必须驻留在连接到当前会话的 GBase 8s 数据库服务器实例的本地数据库中。
对于包括 GRID 子句的查询,在 GRID 子句指定的每个节点上,FROM 子句指定的每一表的实例必须有相同的模式、相同的数据库语言环境和相同的代码集。
SELECT 语句只能引用 CREATE EXTERNAL TABLE 语句已指定的一个外部表。在复合查询中,仅可在最外部的查询中指定此外部表。您不可在子查询中引用外部表。
您需要对该数据库的 Connect 访问权限来执行查询,以及对该查询要从其检索行的表对象的 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 语句的其他子句。