在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’)