RDBMS作为管理数据安全,共享,可靠的软件管理系统,需要按照不同的数据模型组织和存储数据,为了方便用户处理数据,任何数据库为了简化业务开发复杂度,提供了丰富的不同数据类型的处理函数。而PostgreSQL除了支持 SQL 标准所支持的函数外,也可以使用不同的服务器编程接口来实现自定义函数,以针对不同的业务需要进行针对性开发。今天来给大家介绍一下PostgreSQL中的字符串处理函数。
一、字符串处理函数
1.1字符串操作符
PostgreSQL对于字符串的操作符,支持关系型数据库中通用的符号 ||,用来多个字符串之间或者空字符和多个字符串之间的连接。
示例:
hrdb=# -- || 为字符串连接操作符
hrdb=# SELECT 'Postgre' || 'SQL' AS result;
result
------------
PostgreSQL
(1 row)
hrdb=# SELECT 'PostgreSQL' || ' ' || 'is most advanced open source ORDBMS !' AS result;
result
--------------------------------------------------
PostgreSQL is most advanced open source ORDBMS !
(1 row)
1.2字符串函数
字符串位数长度函数
bit_length(string)
返回字符串在数据库中的位数长度
示例:
hrdb=# --字符串位数函数 bit_length(string)
hrdb=# SELECT bit_length('PostgreSQL') AS result;
result
--------
80
(1 row)
统计字符长度函数
char_length(string) 或 character_length(string)
返回传入字符串的字符个数
示例:
hrdb=# --字符串字符长度函数 char_length() 或 character_length()
hrdb=# SELECT char_length('PostgreSQL') AS result;
result
--------
10
(1 row)
hrdb=# SELECT character_length('PostgreSQL 12') AS result;
result
--------
13
(1 row)
温馨提示:
注意,使用该函数统计字符串字符长度,将包含空白字符,如果需要将空白字符排除统计,需要做相应的处理。
大小写转换函数
lower(string) 和upper(string)
返回将传入的字符串转换成大(小)写
示例:
hrdb=# --大小写转换函数 lower()和upper
hrdb=# SELECT lower('POSTGRESQL') AS result;
result
------------
postgresql
(1 row)
hrdb=# SELECT upper('postgresql') AS result;
result
------------
POSTGRESQL
(1 row)
字符串首字母转换为大写函数
initcap(string)
返回传入字符串的首字母为大写的字符串
示例:
hrdb=# --字符串首字母大写函数 initcap()
hrdb=# SELECT initcap('postgreSQL') AS result;
result
------------
Postgresql
(1 row)
替换子串函数
overlay()
返回将起始位置到结束位置使用指定的子串替换
示例:
hrdb=# --将起始位置到结束位置的字符使用指定的字符替换
hrdb=# SELECT overlay('Postgresql' placing 'SQL' from 8 for 10);
overlay
------------
PostgreSQL
(1 row)
hrdb=# --使用该函数如果没有指定结束位置,将根据指定字符串长度
hrdb=# --进行替换
hrdb=# SELECT overlay('http://www.google.com' placing 'https' from 1);
overlay
-----------------------
https//www.google.com
(1 row)
字符串所占字节统计函数
octet_length()
返回字符串所占字节的长度
示例:
--返回字符串所占字节长度函数 octet_length()
SELECT octet_length('PostgreSQL') AS result;
SELECT octet_length('开源数据库') AS result;
温馨提示:
对于中文字符,PostgreSQL 默认使用 UTF8 编码,一个中文占用3个字节。
查找指定字符或字符串在字符串中的位置函数
position()
示例:
hrdb=# --查找指定字符或字符串在字符串中的位置函数
hrdb=# SELECT position('pos' in '$PGDATA/postgresql') AS result;
result
--------
9
(1 row)
按指定的位置截取指定字符或字符串函数
substring() 或 substr()
示例:
hrdb=# --按指定的位置截取指定字符或字符串函数 substring() 或 substr()
hrdb=# SELECT substring('https://www.baidu.com',9) AS result;
result
---------------
www.baidu.com
(