返回首页

gbase数据、南大通用产品文档:GBase8c

更新日期:2024年09月11日

dcf_flow_control_cpu_threshold
参数说明:DCF CPU 流控阈值。
该参数属于SIGHUP 类型参数,请参考表15-1 中对应设置方法进行设置。
取值范围:整型,单位百分比,0~2147483647
默认值:100

要将 GBase 8s 不透明类型映射到 Java™ 对象,该对象必须实现 java.sql.SQLData 接口。这
些 Java 对象描述构成不透明类型的所有数据成员。它们是强类型;即 Java 对象
的 readSQL 或 writeSQL 方法中的每个读取或写入方法都必须与不透明类型定义中相应的
数据成员相匹配,因为类型结构是未知的。
GBase 8s JDBC Driver 还要求将所有不透明数据作为 mitypes.h (此文件包含在所有
的 GBase 8s 安装中)中定义的 GBase 8s DataBlade API 数据类型。所有的不透明类型都存
储在数据库服务器的 C 结构中,该结构由不透明类型中定义的各种 DataBlade API 组成。
如果您使用 UDT 和 UDR Manager 工具创建不透明类型,则需要处理 Java 和 C 之间的
映射。有关更多信息,请参阅 创建不透明类型和 UDR。

功能说明
UNION 用来将多个SELECT 语句的结果合并到一个结果集中。
在每个SELECT 语句对应位置上的选择列,应该有相同的类型。(例如,第一个
语句选出的第一列应该与其它语句选出的第一列的类型相同)。第一个SELECT
语句中用到的列名称被作为返回结果的列名称。
SELECT 语句是一般的查询语句,但是有以下约束:

不同的数据类型,
不能使用UNION 和UNION ALL,
例如:
数值型、
字符型、
日期和时间型之间不能使用UNION 和UNION ALL,但是DATETIME 和
TIMESTAMP 类型可以使用UNION 和UNION ALL,
其它的日期和时间类型
则不行。

如果UNION 和UNION ALL 两边的数据类型为CHAR 类型,进行UNION
和UNION ALL 操作时,结果返回VARCHAR 类型。
例如:SELECT CHAR(10) UNION SELECT CHAR(255) 的结果集为
VARCHAR(255)。

UNION 和UNION ALL 结果由小的数据类型向大的数据类型转换,
如:
INT ->
BIGINT -> DECIMAL -> DOUBLE。

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
1086
例如:SELECT INT UNION SELECT DOUBLE 的结果集为DOUBLE 型。

NULL 可以和任何类型做UNION 和UNION ALL。
例如:SELECT NULL UNION SELECT 1;

如果只是使用UNION,那么将返回无重复记录的结果集,此时,UNION 等
同于UNION DISTINCT。如果使用UNION ALL,将会返回所有SELECT 后
的结果集,这个结果集会存在重复的记录。

如果在多个SELECT 的UNION 查询中,同时存在UNION [DISTINCT]和
UNION ALL,那么UNION ALL 会被忽略,最终返回UNION [DISTINCT]后
的结果集(过滤掉重复的记录行)。

如果希望使用ORDER BY 或LIMIT 子句来分类或限制整个UNION 结果,
可以给单独的SELECT 语句加上括号或者把ORDER BY 或LIMIT 置于最后。
语法格式
select_statement1
UNION [ALL | DISTINCT]
select_statement2
[UNION [ALL | DISTINCT]
select_statement3
……
UNION [ALL | DISTINCT]
select_statementN
]
表5- 104 参数说明
参数名称


select_statement
SELECT 语句。
示例
示例1:
SELECT 语句中使用ORDER BY 子句分类UNION 结果。
这种ORDER BY
不能使用包括表名的列引用(如,table_name.col_name 格式的名字)。相对的,
可以在第一个SELECT 语句中提供一个列的别名并在ORDER BY 中引用这个别
名。
gbase> CREATE TABLE student (stu_no int, stu_name varchar(200),stu_sex
int);
Query OK, 0 rows affected
gbase> INSERT INTO student VALUES(4,'King',1),(5,'Smith',1);
Query OK, 2 rows affected

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
1087
Records: 2
Duplicates: 0
Warnings: 0
gbase> SELECT stu_name FROM student WHERE stu_name LIKE 'S%'
UNION
SELECT stu_name FROM student WHERE stu_name LIKE '%K%'
ORDER BY stu_name LIMIT 10;
+----------+
| stu_name |
+----------+
| King
|
| Smith
|
+----------+
2 rows in set
示例2:对于单独的SELECT 应用ORDER BY 或LIMIT 时,将子句插入到封装
SELECT 的圆括号中。圆括号中的SELECT 语句的ORDER BY 只有与LIMIT 结
合才起作用。否则,ORDER BY 将被优化掉,防止语法二义性。
gbase> (SELECT c_name FROM ssbm.customer WHERE c_name LIKE
'%00002%' ORDER BY c_name LIMIT 10)
UNION
(SELECT c_name FROM ssbm.customer WHERE c_name LIKE
'%00003%'ORDER BY c_name LIMIT 10);
+--------------------+
| c_name
|
+--------------------+
| Customer#000000002 |
| Customer#000000020 |
| Customer#000000021 |
| Customer#000000022 |
| Customer#000000023 |
| Customer#000000024 |
| Customer#000000025 |
| Customer#000000026 |
| Customer#000000027 |
| Customer#000000028 |
| Customer#000000003 |
| Customer#000000030 |
| Customer#000000031 |
| Customer#000000032 |
| Customer#000000033 |
| Customer#000000034 |
| Customer#000000035 |
| Customer#000000036 |
| Customer#000000037 |

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
1088
| Customer#000000038 |
+--------------------+
20 rows in set
示例3:
UNION 结果集中列的长度和类型需要考虑到从所有SELECT 语句中查出
的值。第一个SELECT 查出的值比第二个SELECT 的值短。
gbase> SELECT REPEAT('a',1) UNION SELECT REPEAT('b',10);
+---------------+
| REPEAT('a',1) |
+---------------+
| a
|
| bbbbbbbbbb
|
+---------------+
2 rows in set
示例4:
系统报告错误信息,
是因为LIMIT 1 会产生二义性,
执行器不知道LIMIT
1 是UNION 后执行,还是SELECT c_name FROM ssbm.customer LIMIT 1 后再
UNION SELECT c_custkey FROM ssbm.customer。
gbase> SELECT c_custkey FROM ssbm.customer UNION SELECT c_name
FROM ssbm.customer LIMIT 1;
ERROR 1733 (HY000): Gbase general error: UNION/INTERSECT/MINUS of
non-matching columns: LONGLONG UNION/INTERSECT/MINUS VARCHAR
示例5:DATETIME 和TIMESTAMP 类型的UNION。
gbase> CREATE TABLE t_student (sno int, sname varchar(100),sdate
datetime);
Query OK, 0 rows affected
gbase> INSERT INTO t_student VALUES(1,'Tom',NOW()),(2,'Jim',NOW());
Query OK, 2 rows affected
Records: 2
Duplicates: 0
Warnings: 0
gbase> SELECT * FROM t_student;
+------+-------+---------------------+
| sno
| sname | sdate
|
+------+-------+---------------------+
|
1 | Tom
| 2013-10-14 17:56:19 |
|
2 | Jim
| 2013-10-14 17:56:19 |
+------+-------+---------------------+
2 rows in set
gbase> CREATE TABLE t_Result (sno int, sresult decimal(10,2),sdate
timestamp);

GBase 8a MPP Cluster 产品手册
5 数据库管理指南
文档版本953(2022-09-15)
南大通用数据技术股份有限公司
1089
Query OK, 0 rows affected
gbase> INSERT INTO t_result VALUES(1,99.5,NOW()),(2,100,NOW());
Query OK, 2 rows affected
Records: 2
Duplicates: 0
Warnings: 0
gbase> SELECT * FROM t_result;
+------+---------+---------------------+
| sno
| sresult | sdate
|
+------+---------+---------------------+
|
1 |