返回首页

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

更新日期:2024年09月11日

sysseclabelauth 系统目录表记录已授予用户的 LBAC 标号。它具有以下列。

类型
解释
GRANTEE
CHAR(32)
被授予标号者的名称
secpolicyid
INTEGER
安全标号所属的安全策略的标识
readseclabelid
INTEGER
已被授予读访问权的安全标号的
标识
writeseclabelid
INTEGER
已授予写访问权的安全标号的标

SELECT ...
[UNION [ALL | DISTINCT]
SELECT ...]
UNION 用来将多个SELECT 语句的结果合并到一个结果集中。
在每个SELECT 语句对应位置上的选择列,应该有相同的类型。
(例如,第一个语
句选出的第一列应该与其它语句选出的第一列的类型相同)

第一个SELECT 语句
中用到的列名称被作为返回结果的列名称。
SELECT 语句是一般的查询语句,但是有以下约束:
不同的数据类型,不能使用UNION 和UNION ALL,例如:数值型,字符型,日期
和时间型之间不能使用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。
例如: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 结果,可以把
ORDER BY 或LIMIT 置于最后。

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 775
示例1:使用ORDER BY 子句分类UNION 结果。
gbase> CREATE TABLE student (stu_no int, stu_name varchar(200),stu_sex int) ENGINE =
'HIVE';
Query OK, 0 rows affected

gbase> INSERT INTO student VALUES(4,'King',1),(5,'Smith',1);
Query OK, 2 rows affected
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 DESC LIMIT 10;
+----------+
| stu_name |
+----------+
| Smith |
| King |
+----------+
2 rows in set
注意:
ORDER BY 不能使用包括表名的列引用
(如,table_name.col_name 格式的名
字)。相对的,可以在第一个SELECT 语句中提供一个列的别名并在ORDER BY
中引用这个别名。
示例2:单独的SELECT 应用ORDER BY 或LIMIT 时,将报错。
gbase> (SELECT stu_name FROM student WHERE stu_name LIKE '%K%' ORDER BY stu_name LIMIT
10)
UNION
(SELECT
stu_name
FROM
student
WHERE
stu_name
LIKE
'%S%'ORDER
BY
stu_name
LIMIT
10);
报错如下:
ERROR 1 (HY000): Error while compiling statement: FAILED: ParseException line 1:300
Failed to recognize predicate ''. Failed rule: 'orderByClause clusterByClause
distributeByClause sortByClause limitClause can only be applied to the whole union.'
in statement

-- 采用列别名的方式
gbase> SELECT stu_name name FROM student WHERE stu_name LIKE '%J%'
UNION
SELECT stu_name FROM student WHERE stu_name LIKE '%R%' ORDER BY name DESC LIMIT 4 ;
+-------+
| name |
+-------+
| Rose |

GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 776
| Roose |
| Json |
| John |
+-------+
4 rows in set

示例3:CHAR 和CHAR 类型的UNION。
gbase> CREATE TABLE t1(a char(10)) ENGINE = 'HIVE';
Query OK, 0 rows affected

gbase> CREATE TABLE t2(a char(255)) ENGINE = 'HIVE';
Query OK, 0 rows affected

gbase> CREATE TABLE ta AS SELECT * FROM t1 UNION SELECT * FROM t2;
Query OK, 0 rows affected

gbase> DESC ta;
+-------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| a | varchar(255) | YES | | NULL | |
+-------+--------------+------+-----+---------+-------+
1 row in set

URL 示例:
http://192.168.5.3:8080/v2/tables/{stid}
该接口功能用于获取source-target id 的同步表信息。
参数说明:
stid:代表config_task.xml 文件中的source-target id。
调用结果:
{
"idno0":"idno0",

GBase RTSync 同步工具手册
- 64 -
南大通用数据技术股份有限公司
"requesttype":"synctables",
"message":[{
"originalTable":"zbbdb1.t1",//源数据库表信息
"destTable":"zbb11.t2",//对应的目标数据库表信息
"originalSchema":"dbo",//源数据库表对应的架构名称
"destSchema":null,
"orginalPk":"id",//源数据库的主键列信息
"destPk":"id",//对应的目标数据库主键列信息
"orginalColNames":"inttype,smallinttype,id,tinyinttype,b
iginttype,bittype",//源数据库的列名称
"destColNames":"inttype,smallinttype,id,tinyinttype,bigi
nttype,bittype",//目标数据库的列名称
"orginalColTypes":"int,smallint,bigint,tinyint,bigint,bi
t",//源数据库的列类型
"destColTypes":"int,smallint,bigint,tinyint,bigint,bit"}]}//目标
数据库的列类型