在GBase8s数据库日常操作中有很多使用频率较高的函数,今天给大家介绍几个函数和表达式,希望能在日常的工作中帮助到大家。
聚集函数
函数 | 返回类型 | 描述 | 示例 | 结果 |
COUNT(*) | 数值 | 返回行数 | COUNT(*) | 100 |
COUNT(UNIQUE col) COUNT(DISTINCT col) | 数值 | 返回去重后的行数(忽略NULL行) | COUNT(UNIQUE col1) | 50 |
COUNT(col) | 数值 | 返回行数 | COUNT(col1) | 100 |
AVG(col/expr) | 数值 | 返回表达式或指定的列的数值平均值 | AVG(col1) | 64 |
AVG(UNIQUE col) AVG(DISTINCT col) | 数值 | 返回指定的列中唯一值的数值平均值 | AVG(UNIQUE col1) | 61 |
MAX(col/expr) | 数值 | 返回指定的列或表达式中的最大值 | MAX(col1) | 100 |
MIN(col/expr) | 数值 | 返回指定的列或表达式中的最小值 | MIN(col1) | 10 |
SUM(col/expr) | 数值 | 返回指定的列或表达式中的数值总和 | SUM(col1) | 5050 |
RANGE(col) | 数值 | 返回数值列表达式参数的值的范围 | RANGE(col1) | 99 |
STDEV(col) | 数值 | 计算数据集的标准差 | STDEV(col1) | 200 |
VARIANCE(col) | 数值 | 总体方差的估计值,即标准差的平方 | VARIANCE(col1) | 40000 |
示例:
表数据中有7行,内容如下:
ID | COL1 |
1 | 2 |
2 | 2 |
3 | 2 |
4 | 3 |
5 | 3 |
6 | 4 |
7 | NULL |
函数对COL1字段的操作结果为:
函数 | 结果 | 函数 | 结果 |
COUNT (*) | 7 | MAX | 4 |
COUNT (DISTINCT col1) | 3 | MAX(DISTINCT col1) | 4 |
COUNT (ALL col1) | 6 | MIN | 2 |
COUNT ( col1 ) | 6 | MIN(DISTINCT col1) | 2 |
AVG | 2.66666666666667 | RANGE | 2 |
AVG (DISTINCT col1) | 3.00000000000000 | SUM | 16 |
STDEV | 0.74535599249993 | SUM(DISTINCT col1) | 9 |
长度函数
函数 | 返回类型 | 描述 | 示例 | 结果 |
LENGTH(expr) LEN(expr) | 数值 | 返回指定表达式的字节长数(截断末尾空格) | length('abcd ') | 4 |
OCTET_LENGTH(expr) | 数值 | 返回字符列中的字节数,包括任何末尾的空格 | octet_length('abcd ') | 8 |
CHAR_LENGTH(expr) CHARACTER_LENGTH(expr) | 数值 | 返回在它的参数中的逻辑字符的数目 | CHAR_LENGTH('南大通用') | 4 |
DBINFO函数
函数 | 返回类型 | 描述 | 示例 | 结果 |
DBINFO('dbspace', tblspace_num) | 文本 | 返回指定表partnum所在的dbspace空间名称 | dbinfo('dbspace', 6291458) | datadbs01 |
DBINFO('sqlca.sqlerrd1') | 数值 | 返回提供插入到表内的最后的 serial 值的单个整数 | DBINFO('sqlca.sqlerrd1') | 1 |
DBINFO('sqlca.sqlerrd2') | 数值 | 返回提供 SELECT、INSERT、DELETE、UPDATE、EXECUTE PROCEDURE 和 EXECUTE FUNCTION 语句处理了的行的数目的单个整数 | DBINFO('sqlca.sqlerrd2') | 10 |
DBINFO('sessionid') | 数值 | 返回当前会话ID | DBINFO('sessionid') | 36 |
DBINFO('cdrsession') | 布尔值 | 检测是否执行 INSERT、UPDATE 或 DELETE 语句作为复制的事务的一部分 | DBINFO('cdrsession') | 0 |
DBINFO('dbname') | 文本 | 返回当前会话使用的库名 | DBINFO('dbname') | testdb |
DBINFO('dbhostname') | 文本 | 返回数据库服务器的主机名称 | DBINFO('dbhostname') | localhost |
DBINFO('version', 'server-type') | 文本 | 数据库服务器的类型 | DBINFO('version', 'server-type') | GBase Server Version |
DBINFO('version', 'major') | 文本 | 当前数据库服务器版本的主要版本号 | DBINFO('version', 'major') | 12 |
DBINFO('version', 'minor') | 文本 | 当前数据库服务器版本的次要版本号 | DBINFO('version', 'minor') | 10 |
DBINFO('version', 'os') | 文本 | 在版本字符串内的操作系统标识符 | DBINFO('version', 'os') | F |
DBINFO('version', 'level') | 文本 | 当前数据库服务器版本的临时发布级别 | DBINFO('version', 'level') | C1G1AEE |
DBINFO('version', 'full') | 文本 | oninit -V 返回的完整的版本字符串 | DBINFO('version', 'full') | GBase Server Version 12.10.FC4G1AEE |
DBINFO('serial8') | 数值 | 返回提供插入到表内的最后的 serial8 值的单个整数 | DBINFO('serial8') | 1 |
DBINFO('bigserial') | 数值 | 返回提供插入到表内的最后的 bigserial 值的单个整数 | DBINFO('bigserial') | 1 |
DBINFO('get_tz') | 文本 | 回展示当前会话的时区的 $TZ 字符串 | DBINFO('get_tz') | |
DBINFO('utc_current') | 数值 | 展示在 1970-01-01 00:00:00+00:00 与当前 SQL 语句开始执行时刻之间已消耗了的秒数的整数值 | DBINFO('utc_current') | 1588043111 |
DBINFO('utc_to_datetime', expr) | 日期时间 | UTC 秒数返回到服务器会生成的 DATETIME 值 | DBINFO('utc_to_datetime', 1588043111) | 2020-04-27 23:05:11 |
加密解密函数
函数 | 返回类型 | 描述 | 示例 |
ENCRYPT_TDES(data [,password [, hint]]) | 文本 | 使用TDES加密,指定密码,提示信息 | ENCRYPT_TDES("1234567890123456", "simple password") |
ENCRYPT_AES(data [,password [, hint]]) | 文本 | 使用AES加密,指定密码,提示信息 | ENCRYPT_AES( "1234567890123456", "simple password") |
DECRYPT_CHAR(encrypted_data [, password]) | 文本 | 解密 | DECRYPT_CHAR( 'myHeIBAAAAAAAAAAOA', 'simple password') |
DECRYPT_BINARY(encrypted_data [, password]) | 文本 | 解密 | DECRYPT_BINARY(encrypted_data [, password]) |
GETHINT(encrypted_data) | 文本 | 获取提示信息 | gethint('myHeIBAAAAAAAAAAOA') |
MD5(data) | 文本 | MD5值 | md5('test') |




