华为GAUSS数据库常用的单行操作函数介绍

在这篇博客里面,主要是介绍华为高斯数据库,繁多的数据类型里面,常用的函数操作的方法,然后给大家写了每个函数的用法举例,欢迎留言补充。

字符串函数

trim() :去除字符串左右两边的指定字符,默认是去除空格

substring(字符串, 开始序号, 连续长度)/substr() :截取指定字符串

regexp_like(字符串, 正则表达式) :用正则表达式来搜索数据

例如查询名字中 王开头,中间有一个字,并且是五结尾的所有数据:

再试一个查询符合手机号码规则的方法,现在要查找13开头或者18开头的11位纯数字的信息:

concat() :拼接字符串

26f613ba4770ca7130e7054ae1821a1e.png

concat_ws() :用符号拼接字符串

lpad() / rpad(字符串, 总长度, 填充符号) :字符串的左右填充

upper() / lower() /initcap() :字符串的大小写转换

decode(判断条件, 预期值, 符合结果, 不符合结果) :对条件进行判断,并且输出真假场景下的结果

c9b8e2c759b8769bcae2d3ab931e7f16.png

99189fab2ad88afe277ee5b7b6cee66d.png

instr(字符串, 查找的内容) :对字符的位置进行查找

f7d99d2bc99ddd39bbcf7fc855deafba.png

instr(字符串, 查找的内容, 从哪个位置开始, 找匹配的第几个):使用查找的开始序号等对查找的内容进行条件限定

db90a49809a9b8c6189efa7913f2ef21.png

length() :查看字符串长度

replace(字符串, 被替换的内容, 新内容) :字符内容的替换

translate(字符串, 被去除的数据, 依次替换的数据) :将数据依次进行替换,没有替换目标的内容对应空,将被移走

例如:a对应1,bc没有对应的替换值,bc直接被去除,所以 abc 被替换成 1

例如:这里会按顺序,a对应1,b对应2,c对应3 进行数据的替换

例如:要去掉字符串里面所有的数字

string_agg(字符串字段, 连接符 order by 排序) :按照某个顺序对字符串进行拼接

split_part(字符串, '切割符', 序号) :将字符串按照某个符号进行切割,然后展示其中的第几个部分。这里的序号是从1开始的

如果我们要获取最后一个字段,但是不知道这个字符的长度,也不知道会被切割成几份,就需要自己编写规则去获取数据了。

string_to_array(字符串, 切割符) :将字符串按切割符切割成数组

regexp_split_to_array(字符串, 正则表达式) :按照正则表达式的规则将字符串切割成数组

regexp_matches(字符串, 正则表达式) :返回匹配模式的字符串数组,如果需要返回所有匹配的集合,则需要第三个参数' g' (g 是 global全局搜索的意思)

数字函数

abs() :求绝对值

e7716fc93448124edcf0eea5991ee090.png

random() :获取随机数

a84a9f4f8747982dc0d8c488d6e38381.png

round() :对数字按照精度四舍五入

c2721753e051b632725bd23250e54eae.png

trunc() :数字的截取

ceil() / floor() :向上和向下取整

power() :幂运算

mod() :取余数运算

日期时间函数

sysdate :获取当前日期时间:timestamp

clock_timestamp() :获取当前日期时间:timestamp with time zone

current_timestamp :获取当前日期时间:timestamp with time zone

now() :获取当前日期时间:timestamp with time zone

statement_timestamp() :获取当前日期时间:timestamp with time zone

current_date :仅获取当前日期的年月日数据:date

b3cf980e90f773ab32045184722dfc3e.png

current_time :仅获取当前时间的时分秒数据:time with time zone

localtime :仅获取当前时间的时分秒,无时区类型:time

localtimestamp :获取当前日期时间:timestamp

timeofday() :返回字符串格式的时间

add_months() :月份的偏移,将日期往前或者往后移动N个月

天数的偏移直接用时间日期类型加减就行

extract(year|month|day|week|dow|hour|minute|second from 时间) :对时间内容的维度进行提取

date_part() :进行时间内容的提取,等效于extract()

last_day() :查询时间所在月的最后一天日期

to_timestamp() :进行字符串到时间格式的转换

age() :以年月日为单位返回时间间隔

date_trunc() :日期时间的裁剪

这里的week的切割和oracle不一样,oracle是切到周天,而gauss是切到周一

isfinite() :测试时间是否为正常范围,正常时间返回 t,否则报错

pg_sleep() :服务器线程延迟时间设置,这个方法和python中的 time.sleep() 效果相同

next_day() :查看下一个时间周期(星期)的日期

数据类型转换函数

cast() :数据类型转换

to_char() :转换数据为字符串 / 将日期类型的数据提取出来

a4f9eb092e0215ed3887c1702ee06625.png

to_date() :将字符串转换成日期date类型

to_timestamp() :将字符串转换成时间戳timestamp类型,看起来和to_date()是一样的,但是to_date()是时间类型,to_timestamp()是个字符串。

to_number() :将其他类型转换成数字

文本检索函数

length(to_tsvector()) :返回tsvector类型词汇的单词数,tsvector类型会对单词内容进行去重,返回int整数

ts_rewrite(查询的tsquery, 查询的tsquery, 替换的tsquery) :查询重写,返回一个tsquery类型

例如下面的tsquery类型中,将apple替换成banana:

或者放在表格中,我们将小米替换成MI:

这里要注意的是,如果需要重写的规则越多,那么重写的操作就会越慢,因为ts_rewrite()要检查每一个可能匹配的规则。

JSON类型函数

array_to_json() :将一个多维数组返回成一个指定数据类型的json格式的数组

row_to_json() :将一行数据返回成一个json格式的行信息

HLL类型函数

hll_hash_any() :对任何数据类型进行哈希值的计算

hll_hashval_eq() :比较两个数据的哈希值计算结果是否一致

hll_hashval_ne() :比较两个数据的哈希值计算结果是否不一致

hll_add_agg() :将哈希之后的数据,分组放到hll中

例如对表格中的性别进行分组,根据id进行哈希计算,将计算结果分组放入到同一个性别的hll里面

hll_cardinality() :对分组之后的hll数据进行统计,统计结果会去重

sequence类型函数

nextval() :递增序列并且返回这个序列的新值

--先创建一个新的自定义序列对象

--创建一个表格,在表格的主键id上使用这个序列对象

8c26dc733d2984fcb0a7fb3e072034aa.png

--插入数据的时候,这个序列号便会自动的进行添加了

在序列对象里面,本身也有 nextval 这个属性可以直接使用到序列的下一个值:

currval :查看表格序列的最后一个值

setval() 重新设置当前序列对象的值

aes128加密解密函数

gs_encrypt_aes128(被加密的字符串, 密钥) :将字符串根据密钥进行aes加密,转换密码的密钥,需要8个字符以上而且包含至少三种不同的字符

gs_decrypt_aes128('加密后的密文', '密钥') :对加密的aes128进行解密操作

集合函数

generate_series(开始值, 结束值, 步长) :生成一个数字范围内的序号,一个从开始到结束的连续序号

时间日期类型也是可以的

736581d8db410f820c2ab3b4cb35554e.png

generate_subscripts() :返回数组中某个维度的下标序号(该维度的元素个数)

系统信息函数

current_catalog / current_database() :查询当前的数据库名字

current_user :查询当前的用户名

current_schema :schema是表格的集合体,如果没有创建单独的schema,那么默认是使用的public

感兴趣的同学可以点击关注,后续还会继续更新gauss数据库的内容。

猜你喜欢

转载自blog.csdn.net/adamconan/article/details/127554097