PostgreSql数据库常用字符串处理函数

1 字符串介绍

类型名称描述
character varying(n) varchar(n)变长,最大位1GB。存储空间位:4+实际字符串长度。与MySQL中的varchar(n)或text(n)以及Oracle中的varchar2(n)类型类似,但是在MySQL中varchar最长为64KB,oracle varchar2最多为4000字节,而Postgresql中可以达到1GB
character(n) char(n)定长,不足补空白,最大为1GB。存储空间为4+n
text变长,无长度限制。与MySQL中的longtext相类似。

2 字符串函数与操作符

函数返回类型描述示例结果
string || stringtext字符串连接‘Post’||‘greSQL’PostgreSQL
bit_length(string)int字符串中二进制的个数bit_length(‘jose’)32
char_length(string)或character_length(string)int字符串中的字符个数char_length(‘数据库’)3
convert(string using conversion_name)text使用指定的转换名字改变编码。转换可以CREATE COVERSION来定义。当然,系统中也有一些预定义的转换名字。convert(‘PostgreSQL’,using iso_8859_1_to_utf8)UTF8编码的’PostgreSQL’
lower(string)text把字符串转换为小写lower(‘TOM’)tom
octet_length(string)int字符串中的字节数octer_length(‘jose’)4
overlay(string placing string from int[for int])text替换子字符串overlay(‘Txxxxas’, placing ‘hom’ from 2 for 4)Thomas
position(substring in string)int指定的子字符串的位置position(‘om’ in ‘Thomas’)3
substring(string [from int] [for int])text抽取子字符串substring(‘Thomas’ from 2 for 3)hom
substring(string from pattern)text抽取匹配POSIX正则表达式的子字符串substring(‘Thomas’ from ‘…$’)mas
substring(string from pattern for escape)text抽取匹配SQL正则表达式的子字符串substring(‘Thomas’ from ‘%#“o_a#”_’ for ‘#’)oma
trim([leading|trailing|both][characters] from string)text从字符串string开头|结尾|两端删除只包含characters中字符(默认是一个空白)的最长的字符串trim(both ‘x’ from ‘xTomxx’)Tom
upper(string)text把字符串抓换为大写upper(‘tom’)TOM

3 其他字符串函数

函数返回类型描述示例结果
ascii(string)int参数第一个字符的ASCII码ascii(‘a’)97
btrim(string text [,characters text])text从string的开头和结尾删除包含在参数chatacters中的字符,直到遇到一个不是在characters中的字符为止,参数characters的默认值为空格btrim(‘aaosdbaaa’,'aa)osdb
chr(int)text给出ASCII码的字符chr(97)a
convert(string text,[src_encoding name,]dest_encoding name)text把原来编码为src_encoding的字符串转换为dest_encoding编码(如果省略了src_encoding,将使用数据库编码)convert(‘aa’,‘UTF8’,‘GBK’)\x6161(以GBK编码表示的aa)
decode(string text,type text)bytea把原来用encode编码的string中的二进制数据解码。参数类型与encode相同decode(‘b3NkYmEAAQ==’,‘base64’)\x6f736462610001
encode(data bytea,type text)text把二进制数据编码为只包含ASCII形式的数据encode(E’osdba\\000\\001’,‘base64’)b3NkYmEAAQ==
intcap(string)text把每个单词的第一个字母转换为大写,其他的仍为小写。单子是一系列字母数字组成的字符串,用非字母数字分割initcap(‘hi osdba’)Hi Osdba
length(string)intstring中字符的数目length(‘osdba’)5
lpad(string text,length int,[,fill text])text通过填充字符fill(默认为空白),把string填充为length长度。如果string已经比length长,则将其尾部截断lpad(‘OK’,5,‘12’)121OK
ltrim(string)text从字符串string的开头删除包含在参数characters中的字符,直到遇到一个不在characters中的字符为止,参数characters的默认值为空格ltrim(‘213osdba213’,‘123’)osdba213
md5(string)text计算string的md5散列,以十六进制返回结果md5(‘osdba’)bc4e68be5b31f23d8d56c7f4c3351fec
pg_client_encodingname返回当前客户端的编码名称pg_client_encoding()GBK
quote_ident(string)text返回适用于SQL语句的标识符形式(使用适当的引号来界定)。只有在必要的时候才会添加引号(字符串中包含非标识符字符或者转换大小写的字符)。嵌入的引号会被恰当地写为双份quote_ident(‘osdba’)“osdba”
quote_literal(string)text返回适用于SQL语句中当作文本使用的形式。嵌入的引号和反斜杠被恰当的写为双份quote_literal('O\‘Reilly’)‘O"Relily’
regexp_replace(string text,pattern text,replacement text[,flags text])text替换匹配POSIX正则表达式的字符串regexp_replace(‘os123dba’,‘.[1-9]+’,‘#’)o#dba
repeat(string text,number int)text将string重复number次repeat(‘osdba’,3)osdbaosdbaosdba
replace(string text,from text,to text)text把字符串string中出现的所有子字符串from替换为子字符串toreplace(‘123osdba45’osdba78,‘osdba’,’-')123-45-78
rpad(string text,length int [,fill text])text通过填充字符fill(默认为空白),把string填充为length长度。如果string已经比length长,则将其尾部截断rpad(‘os’,6,'123)os1231
rtrim(string text[,characters text])text从字符串string的结尾删除包含在参数characters中的字符,直到遇到一个不包含在characters中的字符为止,参数characters的默认值为空格rtrim(‘trimxxxx’,‘x’)trim
split_part(string text,delimiter text,field int)text根据delimiter分隔string返回生成的第fieldde 子字符串(1为基)split_part(‘123#456#789’,‘#’,2)456
strpos(string,substring)int指定子字符串的位置。和position(substring in string)一样,不过参数顺序相反strpos(‘osdba’,‘db’)3
substr(string,from [,count])text抽取字符串。和substring(string from from for count)一样substr(‘osdba’,2,2)sd
to_ascii(string text [,encoding text])text把string从其他编码抓换为ASCII(仅支持LATIN1、LATIN2、LATIN9、WIN11250编码)to_ascii(‘Osdba’)Osdba
to_hex(number int 或bigint)text把number转换成十六进制表现形式to_hex(‘2147836647’)7fffffff
translate(string text,from text ,to text)text把string中包含所有的匹配from的字符转换为对应的在to中的字符translate(‘12345’,‘14’,‘db’)d23b5
  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
PostgreSQL数据库拼接字符串函数是一种非常重要的函数,使用它可以方便地将不同的字符串进行拼接操作,从而得到我们需要的结果。在这里,我们主要介绍两种拼接字符串函数,它们分别是concat和concat_ws。 concat函数的用法非常简单,只需要将要拼接的字符串作为参数传入即可。例如,我们可以使用以下命令进行字符串拼接: SELECT concat('hello', 'world'); 这个命令会输出'helloworld'。我们还可以使用concat函数在查询语句动态地拼接字符串,例如: SELECT concat(name, ' is from ', country) AS info FROM users; 这个命令会将表users的name和country字段拼接成一个字符串间加上'is from',并将结果保存在info列。通过这种方式,我们可以轻松地对不同字段进行拼接操作,实现更加灵活的查询功能。 另一种拼接字符串函数是concat_ws,它的用法与concat类似,但是在拼接多个字符串时可以指定一个分隔符。例如,我们可以使用以下命令进行字符串拼接: SELECT concat_ws('-', '2021', '12', '31'); 这个命令会输出'2021-12-31'。我们还可以使用concat_ws函数在查询语句动态地拼接字符串,并指定合适的分隔符,例如: SELECT concat_ws(',', name, age, country) AS info FROM users; 这个命令会将表users的name、age和country字段拼接成一个字符串间用逗号隔开,并将结果保存在info列。通过这种方式,我们可以轻松地对多个字段进行拼接操作,并指定合适的分隔符,实现更加灵活的查询功能。 综上所述,PostgreSQL数据库拼接字符串函数是一种非常实用的函数,可以方便地对不同的字符串进行拼接操作。使用这些函数,我们可以轻松地实现灵活的查询和数据处理功能,提高数据处理的效率和准确度。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

surpassLiang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值