PostgreSQL-字符串类型

news/2024/11/8 9:00:57/

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

字符串类型介绍

类型名称描述
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

http://www.ppmy.cn/news/64083.html

相关文章

听劝 千万不要盲目自学网络安全

听劝 不要什么盲目的学网络安全。 一,怎么入门? 1、Web 安全相关概念(2 周) 了解网络安全相关法律法规 熟悉基本概念(SQL 注入、上传、XSS、CSRF、一句话木马等)。 通过关键字(SQL 注入、…

全方面掌握Requests库的使用

全方面掌握Requests库的使用 Requests库是一个常用的Python第三方库,它简化了HTTP请求发送和响应的处理。本文将全方面介绍Requests库的使用,包括基本请求、参数传递、响应处理、会话管理、代理设置以及异常处理等方面。 基本请求 使用Requests库发送…

鲁大师智能化评测新项目——鲁大师真续航测试1.0正式发布

随着社会的高速发展,人们出行的交通工具正变得多种多样,有电单车、摩托车、自行车、两轮平衡车、甚至滑板等。不过如我们所见,电动两轮车已经成为了大多数近途出行用户的选择,因电单车具有方便、快捷、灵活、小巧、易停放等优点而…

IntelliJ IDEA Run时报“无效的源发行版:16“错误

在新建Java项目时,run运行main方法时,报错 “java: 错误: 无效的源发行版:16”,了解一番后原来自己创建项目时,Project language level 没有和Project SDK版本相匹配。 还原创建项目步骤: 一、创建项目 …

c++ 11标准模板(STL) std::vector<bool> (一)

定义于头文件 <vector> template<class Allocator> class vector<bool, Allocator>; std::vector<bool> 是 std::vector 对类型 bool 为空间提效的特化。 std::vector<bool> 中对空间提效的行为&#xff08;以及它是否有优化&#xff09;是实…

什么是DHCP?

DHCP DHCP是动态主机配置协议&#xff08;Dynamic Host Configuration Protocol&#xff09;的英文缩写。它是一种网络协议&#xff0c;用于自动分配IP地址和其他网络配置设置给网络上的设备。DHCP允许网络管理员通过自动分配和跟踪IP地址来更有效地管理和组织他们的网络。 当…

Linux多线程(2)线程安全(同步与互斥)

1.线程安全 概念 在多线程程序中&#xff0c;涉及到了对共享资源的操作&#xff0c;则有可能导致数据的二义性&#xff0c;而线程安全指的是&#xff0c;就算对共享资源进行操作也不会导致数据二义。 总结&#xff1a;多线程中对共享资源的操作不会出现问题。 实现&#xff1a;…

基于springboot的医院信管系统

摘 要 随着信息技术和网络技术的飞速发展&#xff0c;人类已进入全新信息化时代&#xff0c;传统管理技术已无法高效&#xff0c;便捷地管理信息。为了迎合时代需求&#xff0c;优化管理效率&#xff0c;各种各样的管理系统应运而生&#xff0c;各行各业相继进入信息管理时代&…