PostgreSQL-字符串类型

字符串类型是最常用的几种数据类型之一,分为变长定长等类型。

字符串类型介绍

类型名称描述
character varying(n)
varchar(n)
变长,最大为1GB。存储空间为:4+实际的字符串长度。
与MySQL中的varchar(n)或text(n),以及oracle中的varchar2(n)类似,但是在MySQL中varchar最多长64KB,oracle varchar2最多为4000字节,而PG中可以达到1GB
character(n)
char(n)
定长,不足补空白,最大为1GB。存储空间为4+n
text变长,无长度限制。与MySQL中的longtext相类似
  • 未声明长度的character等价于character(1)
  • 未声明长度的character varying,说明该类型接受任何长度的字符串。
  • character的存储长度为4+n,n为定义时的长度(这些类型的存储长度是4字节加上实际的字符串长度)
  • 允许存储的最大字符串大概是1GB
  • 在PG中定长的char(n)与变长的varchar(n)没有差别,大多数情况下建议使用text或者varchar

字符串函数和操作符

常用标准SQL字符串函数和操作符

函数返回类型描述示例结果
string || stringtext字符串连接‘Post’ || ‘greSQL’PostgreSQL
lower(string)text把字符串转化为小写lower(‘TOM’)tom
upper(string)text把字符串转化为大写upper(‘tom’)TOM
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

常用其他字符串函数

函数返回类型描述示例结果
length(string)intstring中字符的数目length(‘osdba’)5
lpad(string text,length int[,fill text])text通过填充字符fill(默认为空白),把string填充为length长度。如果string已经比length长,则将其尾部截断lpad(‘OK’,5,‘12’)121OK
rpad(string text,length int[,fill text])text通过填充字符fill(默认为空白),把string填充为length长度。如果string已经比length长,则将其尾部截断rpad(‘os’,6,‘123’)os1231
ltrim(string text[,characters text])text从字符串string的开头删除包含在参数characters中的字符,直到遇到一个不在characters中的字符为止,参数characters的默认值为空格ltrim(‘213osdba213’,‘123’)osdba213
rtrim(string text[,characters text])text从字符串string的结尾删除包含在参数characters中的字符,直到遇到一个不在characters中的字符为止,参数characters的默认值为空格rtrim(‘trimxxxx’,‘x’)trim
replace(string text,from text,to text)text把字符串string中出现的所有子字符串from替换成子字符串toreplace(‘123osdba45osdba78’)123-45-78
regexp_replace(string text,pattern text,replacement text[,flags text])text替换匹配POSIX正则表达式的子字符串regexp_replace(‘os123dba’,‘.[1-9]+’,‘#’)o#dba
split_part(string text,delimiter text,field int)text根据delimiter分隔string返回生成的第field个子字符串(1为基)split_part(‘123#456#789’,‘#’,2)456
substr(string,from[,count])text抽取子字符串。和substring(string from from for count)一样substr(‘osdba’,2,2)sd
translate(string text,from text,to text)text把string中包含的所有匹配from的字符转化为对应的在to中的字符translate(‘12345’,‘14’,‘db’)d23b5
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值