首页 > 数据库 >无涯教程-PostgreSQL - String函数

无涯教程-PostgreSQL - String函数

时间:2023-12-26 13:33:51浏览次数:56  
标签:PostgreSQL String 无涯 testdb str 字符串 +-------------------------------------------

PostgreSQL字符串函数主要用于字符串操作。下表详细介绍了重要的字符串函数-

S. No. Name & 描述
1 ASCII()

返回最左边字符的数值

2 BIT_LENGTH()

返回参数的长度(以位为单位)

3 CHAR_LENGTH()

返回参数中的字符数

4 CHARACTER_LENGTH()

CHAR_LENGTH()的同义词

5 CONCAT_WS()

返回用分隔符连接

6 CONCAT()

返回串联的字符串

7 LCASE()

LOWER()的同义词

8 LEFT()

返回指定的最左边的字符数

9 LENGTH()

返回字符串的长度(以字节为单位)

10 LOWER()

以小写形式返回参数

11 LPAD()

返回字符串参数,用指定的字符串左填充

12 LTRIM()

删除前导空格

13 MID()

返回从指定位置开始的子字符串

14 POSITION()

LOCATE()的同义词

15 QUOTE()

转义要在SQL语句中使用的参数

16 REGEXP

使用正则表达式进行模式匹配

17 REPEAT()

重复字符串指定次数

18 REPLACE()

替换出现的指定字符串

19 REVERSE()

反转字符串中的字符

20 RIGHT()

返回指定的最右边字符

21 RPAD()

将字符串追加指定的次数

22 RTRIM()

删除尾随空格

24 SUBSTRING(), SUBSTR()

返回指定的子字符串

25 TRIM()

删除前导和尾随空格

26 UCASE()

同义词UPPER()

27 UPPER()

转换为大写

ASCII(str)

返回字符串str的最左边字符的数值。如果str是一个空字符串,则返回0。如果str为NULL,则返回NULL。 ASCII()适用于数字值介于0到255之间的字符。

testdb=# SELECT ASCII('2');
+---------------------------------------------------------+
| ASCII('2')                                              |
+---------------------------------------------------------+
| 50                                                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)

testdb=# SELECT ASCII('dx');
+---------------------------------------------------------+
| ASCII('dx')                                             |
+---------------------------------------------------------+
| 100                                                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

BIT_LENGTH(str)

返回字符串str的长度(以位为单位)。

testdb=# SELECT BIT_LENGTH('text');
+---------------------------------------------------------+
| BIT_LENGTH('text')                                      |
+---------------------------------------------------------+
| 32                                                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)

CHAR_LENGTH(str)

返回字符串str的长度,以字符为单位。多字节字符算作单个字符。这意味着对于包含五个两个字节的字符串,LENGTH()返回10,而CHAR_LENGTH()返回5。

testdb=# SELECT CHAR_LENGTH('text');
+---------------------------------------------------------+
| CHAR_LENGTH('text')                                     |
+---------------------------------------------------------+
| 4                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

CHARACTER_LENGTH(str)

CHARACTER_LENGTH()是CHAR_LENGTH()的同义词。

CONCAT(str1,str2,...)

返回连接参数产生的字符串。它可能有一个或多个参数。如果所有参数均为非二进制字符串,则输出为非二进制字符串。如果参数包含任何二进制字符串,则输出为二进制字符串。数字参数将转换为等效的二进制字符串形式;如果您想避免这种情况,可以使用显式类型转换,如本示例所示:

testdb=# SELECT CONCAT('My', 'S', 'QL');
+---------------------------------------------------------+
| CONCAT('My', 'S', 'QL')                                 |
+---------------------------------------------------------+
| MySQL                                                   |
+---------------------------------------------------------+
1 row in set (0.00 sec)

CONCAT_WS(separator,str1,str2,...)

CONCAT_WS()代表用分隔符连接,是CONCAT()的一种特殊形式。第一个参数是其余参数的分隔符。分隔符被添加到要连接的字符串之间。分隔符可以是字符串,其余参数也可以。如果分隔符为NULL,则输出为NULL。

testdb=# SELECT CONCAT_WS(',','First name','Last Name' );
+---------------------------------------------------------+
| CONCAT_WS(',','First name','Last Name' )                |
+---------------------------------------------------------+
| First name, Last Name                                   |
+---------------------------------------------------------+
1 row in set (0.00 sec)

LCASE(STR)

LCASE()是LOWER()的同义词。

LEFT(str,len)

返回字符串str中最左边的len个字符;如果任何参数为NULL,则返回NULL。

testdb=# SELECT LEFT('foobarbar', 5);
+---------------------------------------------------------+
| LEFT('foobarbar', 5)                                    |
+---------------------------------------------------------+
| fooba                                                   |
+---------------------------------------------------------+
1 row in set (0.00 sec)

LENGTH(str)

返回字符串str的长度,以字节为单位。多字节字符计为多个字节。这意味着对于包含五个两个字节的字符串,LENGTH()返回10,而CHAR_LENGTH()返回5。

testdb=# SELECT LENGTH('text');
+---------------------------------------------------------+
| LENGTH('text')                                          |
+---------------------------------------------------------+
| 4                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

LOWER(str)

返回字符串str,其中所有字符均根据当前字符集映射更改为小写。

testdb=# SELECT LOWER('QUADRATICALLY');
+---------------------------------------------------------+
| LOWER('QUADRATICALLY')                                  |
+---------------------------------------------------------+
| quadratically                                           |
+---------------------------------------------------------+
1 row in set (0.00 sec)

LPAD(STR,len,padstr)

返回字符串str,将其左填充字符串padstr至len个字符的长度。如果str大于len,则返回值缩短为len个字符。

testdb=# SELECT LPAD('hi',4,'??');
+---------------------------------------------------------+
| LPAD('hi',4,'??')                                       |
+---------------------------------------------------------+
| ??hi                                                    |
+---------------------------------------------------------+
1 row in set (0.00 sec)

LTRIM(str)

返回已删除前导空格字符的字符串str。

testdb=# SELECT LTRIM('  barbar');
+---------------------------------------------------------+
| LTRIM('  barbar')                                       |
+---------------------------------------------------------+
| barbar                                                  |
+---------------------------------------------------------+
1 row in set (0.00 sec)

MID(STR,POS,LEN)

MID(STR,POS,LEN) is a synonym for SUBSTRING(str,pos,len).

POSITION(substr IN str)

位置(substr IN str) is a synonym for LOCATE(substr,str).

QUOTE_IDENT(string text), QUOTE_LITERAL(string text), QUOTE_LITERAL(value anyelement), QUOTE_NULLABLE(value anyelement)

所有这些函数都返回给定的字符串,该字符串适当地用引号括起来用作SQL语句字符串中的标识符。在函数QUOTE_IDENT中,仅在必要时才添加引号。在函数QUOTE_LITERAL中,嵌入的单引号和反斜杠已正确加倍。如果传递了值,则将给定值强制转换为文本,然后将其引用为文字。函数QUOTE_NULLABLE将给定值强制转换为文本,然后将其引用为文字。或者,如果参数为null,则返回NULL。

以下是所有这些功能的Example-

testdb=# SELECT QUOTE_IDENT('Foo bar');
 quote_ident
-------------
 "Foo bar"
(1 row)


testdb=# SELECT QUOTE_LITERAL(E'O\'Reilly');
 quote_literal
---------------
 'O''Reilly'
(1 row)


testdb=# SELECT QUOTE_LITERAL(42.5);
 quote_literal
---------------
 '42.5'
(1 row)


testdb=# SELECT QUOTE_NULLABLE(42.5);
 quote_nullable
----------------
 '42.5'
(1 row)

expr REGEXP模式

REGEXP_MATCHES(string text,pattern text [,flags text])函数执行expr与pattern的模式匹配。如果expr与pat匹配,则返回1;否则,返回0。否则返回0。如果expr或pat为NULL,则输出为NULL。 REGEXP_MATCHES不区分大小写,除非与二进制字符串一起使用。

REGEXP_REPLACE(string text, pattern text, replacement text [, flags text]) 函数替换与POSIX正则表达式匹配的子字符串.

REGEXP_SPLIT_TO_ARRAY(string text, pattern text [, flags text ]),使用POSIX正则表达式作为分隔符分割字符串.

REGEXP_SPLIT_TO_TABLE(string text, pattern text [, flags text]), 使用POSIX正则表达式作为分隔符分割字符串

以下是所有这些功能的示例-

testdb=# SELECT REGEXP_MATCHES('ABCDEF','A%C%%');
 regexp_matches
----------------
(0 rows)


testdb=# SELECT REGEXP_REPLACE('Thomas', '.[mN]a.', 'M');
 regexp_replace
----------------
 ThM
(1 row)


testdb=# SELECT REGEXP_SPLIT_TO_ARRAY('hello world', E'\\s+');
 regexp_split_to_array
-----------------------
 {hello,world}
(1 row)


testdb=# SELECT REGEXP_SPLIT_TO_TABLE('hello world', E'\\s+');
 regexp_split_to_table
-----------------------
 hello
 world
(2 rows)

REPEAT(str,count)

返回由重复计数次数的字符串str组成的字符串。如果count小于1,则返回一个空字符串。如果str或count为NULL,则返回NULL。

testdb=# SELECT REPEAT('SQL', 3);
   repeat
-----------
 SQLSQLSQL
(1 row)

REPLACE(str,from_str,to_str)

返回字符串str,其中所有出现的字符串from_str都替换为字符串to_str。搜索from_str时,REPLACE()执行区分大小写的匹配。

testdb=# SELECT REPLACE('www.mysql.com', 'w', 'Ww');
      replace
------------------
 WwWwWw.mysql.com
(1 row)

REVERSE(str)

返回字符串str,其字符顺序颠倒。

testdb=# SELECT REVERSE('abcd');
 reverse
---------
 dcba
(1 row)

RIGHT(STR,LEN)

返回字符串str中最右边的len个字符;如果任何参数为NULL,则返回NULL。

testdb=# SELECT RIGHT('foobarbar', 4);
 right
-------
 rbar
(1 row)

RPAD(STR,len,padstr)

返回字符串str,用padstr右填充字符串,长度为len个字符。如果str大于len,则返回值缩短为len个字符。

testdb=# SELECT RPAD('hi',5,'?');
 rpad
-------
 hi???
(1 row)

RTRIM(str)

返回删除了结尾空格字符的字符串str。

testdb=# SELECT RTRIM('barbar   ');
 rtrim
--------
 barbar
(1 row)

SUBSTRING(str,pos),SUBSTRING(str from pos),SUBSTRING(str,pos,len),SUBSTRING(str from pos for len)

没有len参数的表单从字符串str返回一个从位置pos开始的子字符串。带有len参数的表单从字符串str返回一个len字符长的字符串,从位置pos开始。使用FROM的表单是标准SQL语法。 pos也可以使用负值。在这种情况下,子字符串的开头是字符串末尾的pos字符,而不是开头。可以以此函数的任何形式将负值用于pos。

testdb=# SELECT SUBSTRING('Quadratically',5);
 substring
-----------
 ratically
(1 row)


testdb=# SELECT SUBSTRING('foobarbar' FROM 4);
 substring
-----------
 barbar
(1 row)


testdb=# SELECT SUBSTRING('Quadratically',5,6);
 substring
-----------
 ratica
(1 row)

TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str),TRIM([remstr FROM] str)

返回删除了所有remstr前缀或后缀的字符串str。如果没有给出两个说明符BOTH,LEADING或TRAILING,则假定两者均为。 remstr是可选的,如果未指定,则将删除空格。

testdb=# SELECT TRIM('  bar   ');
 btrim
-------
 bar
(1 row)


testdb=# SELECT TRIM(LEADING 'x' FROM 'xxxbarxxx');
 ltrim
--------
 barxxx
(1 row)


testdb=# SELECT TRIM(BOTH 'x' FROM 'xxxbarxxx');
 btrim
-------
 bar
(1 row)


testdb=# SELECT TRIM(TRAILING 'xyz' FROM 'barxxyz');
 rtrim
-------
 bar
(1 row)

UCASE(str)

UCASE()是UPPER()的同义词。

UPPER(str)

返回字符串str,其中所有字符均根据当前字符集映射更改为大写。

testdb=# SELECT UPPER('manisha');
  upper
---------
 MANISHA
(1 row)

参考链接

https://www.learnfk.com/postgresql/postgresql-string-functions.html

标签:PostgreSQL,String,无涯,testdb,str,字符串,+-------------------------------------------
From: https://blog.51cto.com/u_14033984/8981910

相关文章

  • 23-String类
    String类的特点1. Java程序中,所有双引号字符串,都是String这个类的对象2.字符串一旦被创建,就不可更改(如果想更改,只能使用新的对象做替换)3. 字符串常量池,让我们使用双引号创建字符串对象时,会先去常量池中查找有没有相同内容的字符串对象,如果有,则直接使用该对象,如果没有,则在常......
  • 无涯教程-PostgreSQL - Numeric函数
    PostgreSQL数值函数主要用于数值运算和/或数学计算。下表详细介绍了数字函数-S.No.Name&描述1ABS()返回数值表达式的绝对值。2ACOS()返回数值表达式的反余弦值,如果该值不在-1到1之间,则返回NULL。3ASIN()返回数字表达式的反正弦值,如果值不在-1到1的范围内,则返回NU......
  • 无涯教程-PostgreSQL - ARRAY函数
    PostgreSQLARRAY_AGG函数用于将包含null的输入值连接到数组中。要了解ARRAY_AGG函数,请考虑将 COMPANY 记录为跟随-testdb#select*fromCOMPANY;id|name|age|address|salary----+-------+-----+-----------+--------1|Paul|32|California|......
  • 使用 PostgreSQL 16.1 + Citus 12.1 作为多个微服务的分布式 Sharding 存储后端
    在本教程中,我们将使用PostgreSQL16.1+Citus12.1作为多个微服务的存储后端,演示此类集群的样例设置和基本操作。Citus12.1实验环境设置Docker快速启动Citus分布式集群docker-compose.ymlversion:"3"services:master:container_name:"${COMPOSE_PROJECT......
  • 无涯教程-PostgreSQL - MIN函数
    PostgreSQLMIN函数用于在记录集中找出最小值的记录。要了解MIN函数,请考虑将表 COMPANY 记录为跟随-testdb#select*fromCOMPANY;id|name|age|address|salary----+-------+-----+-----------+--------1|Paul|32|California|200002|L......
  • 无涯教程-PostgreSQL - MAX函数
    PostgreSQLMAX函数用于在记录集中找出最大值的记录。要了解MAX函数,请将表 COMPANY 记录为跟随-testdb#select*fromCOMPANY;id|name|age|address|salary----+-------+-----+-----------+--------1|Paul|32|California|200002|Learn......
  • 无涯教程-PostgreSQL - COUNT函数
    PostgreSQLCOUNT函数是最简单的函数,在计算预计由SELECT语句返回的记录数时非常有用。要了解COUNT函数,请考虑将表 COMPANY 记录为跟随-testdb#select*fromCOMPANY;id|name|age|address|salary----+-------+-----+-----------+--------1|Paul|......
  • 无涯教程-PostgreSQL - 连接Perl
    安装模块可以使用PerlDBI模块将PostgreSQL与Perl集成,PerlDBI模块是Perl编程语言的数据库访问模块。它定义了一组提供标准数据库接口的方法,变量和约定。这是在Linux/Unix机器上安装DBI模块的简单步骤-$wgethttp://search.cpan.org/CPAN/authors/id/T/TI/TIMB/DBI-1.625.tar.......
  • 无涯教程-PostgreSQL - 连接C/C++
    本教程将使用libpqxx库,该库是PostgreSQL的官方C++客户端API。libpqxx的源代码在BSD许可下可用,因此您可以免费下载,将其传递给他人,进行更改,出售,将其包含在自己的代码中,并与选择的任何人共享您的更改。安装Libpqxx可以从以下链接下载最新版本的libpqxx:下载Libpqxx。因此,下载......
  • 无涯教程-PostgreSQL - 常用函数
    PostgreSQL内置函数(也称为聚合函数)用于对字符串或数字数据执行处理。以下是所有通用PostgreSQL内置函数的列表-PostgreSQLCOUNT函数   - 获取的行数。PostgreSQLMAX函数      - 获取最高(最大值)值。PostgreSQLMIN函数      -......