PostgreSQL常用字符串函数和操作符:

更新时间:2023-07-10 02:34:58 阅读: 评论:0

PostgreSQL常⽤字符串函数和操作符:
⼀、逻辑操作符:
常⽤的逻辑操作符有:AND、OR和NOT。其语义与其它编程语⾔中的逻辑操作符完全相同。
⼆、⽐较操作符:
下⾯是PostgreSQL中提供的⽐较操作符列表:
操作符描述
<⼩于
>⼤于
<=⼩于或等于
>=⼤于或等于
=等于
!
=不等于
⽐较操作符可以⽤于所有可以⽐较的数据类型。所有⽐较操作符都是双⽬操作符,且返回boolean类型。除了⽐较操作符以外,我们还可以使⽤BETWEEN语句,如:
a BETWEEN x AND y 等效于 a >= x AND a <= y
a NOT BETWEEN x AND y 等效于 a < x OR a > y
三、数学函数和操作符:
下⾯是PostgreSQL中提供的数学操作符列表:
操作符描述例⼦结果
+加  2 + 35
-减  2 - 3-1
*乘  2 * 36
/除  4 / 22
%模  5 % 41
^幂  2.0 ^ 3.08
|/平⽅根|/ 25.05
||/⽴⽅根||/ 27.03
!阶乘  5 !120
!!阶乘!! 5120
@绝对值@ -5.05
&按位AND91 & 1511
|按位OR32 | 335
#按位XOR17 # 520
~按位NOT~1-2
<<;按位左移  1 << 416
>>按位右移8 >> 22
按位操作符只能⽤于整数类型,⽽其它的操作符可以⽤于全部数值数据类型。按位操作符还可以⽤于位串类型bit和bit varying,
下⾯是PostgreSQL中提供的数学函数列表,需要说明的是,这些函数中有许多都存在多种形式,区别只是参数类型不同。除⾮特别指明,任何特定形式的函数都返回和它的参数相同的数据类型。
函数返回类型描述例⼦结果
abs(x)绝对值abs(-17.4)17.4
cbrt(double)⽴⽅根cbrt(27.0)3
ceil(double/numeric)不⼩于参数的最⼩的整数ceil(-42.8)-42
degrees(double) 把弧度转为⾓度degrees(0.5)28.6478897565412智力题
exp(double/numeric)⾃然指数exp(1.0)  2.71828182845905
floor(double/numeric)不⼤于参数的最⼤整数floor(-42.8)-43
ln(double/numeric)⾃然对数ln(2.0)0.693147180559945
log(double/numeric)10为底的对数log(100.0)2
log(b numeric,x numeric)numeric指定底数的对数log(2.0, 64.0)  6.0000000000
mod(y, x)取余数mod(9,4)1
pi() double"π"常量pi()    3.14159265358979
power(a double, b double)double求a的b次幂power(9.0, 3.0)729
power(a numeric, b numeric)numeric求a的b次幂power(9.0, 3.0)729
radians(double)double把⾓度转为弧度radians(45.0)0.785398163397448
random()double0.0到1.0之间的随机数值random()
round(double/numeric)圆整为最接近的整数round(42.4)42男科病查询
round(v numeric, s int)numeric圆整为s位⼩数数字round(42.438,2)42.44
sign(double/numeric)参数的符号(-1,0,+1) sign(-8.4)-1
sqrt(double/numeric)平⽅根sqrt(2.0)  1.4142135623731
trunc(double/numeric)截断(向零靠近)trunc(42.8)42
trunc(v numeric, s int)numeric截断为s⼩数位置的数字trunc(42.438,2)42.43
三⾓函数列表:
函数描述
acos(x)反余弦
asin(x)反正弦
atan(x)反正切
atan2(x, y)正切 y/x 的反函数
cos(x)余弦
cot(x)余切
sin(x)正弦
tan(x)正切
四、字符串函数和操作符:
下⾯是PostgreSQL中提供的字符串操作符列表:
函数返
抢新郎
描述例⼦结果
string || string te
xt
字串连接'Post' || 'greSQL'PostgreSQL
bit_length(string)int字串⾥⼆进制位的个数bit_length('jo')32
char_length(string)int字串中的字符个数char_length('jo' )
4
convert(string using conversion_name)te
xt
使⽤指定的转换名字改变编码。
convert('Postgre
SQL' using
iso_8859_1_to_u
tf8)
'PostgreSQL'
lower(string)te
xt
把字串转化为⼩写lower('TOM')tom
octet_length(string)int字串中的字节数octet_length('jo
4
')
overlay(string placing string from int [for int])te
xt
替换⼦字串
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])te
xt
抽取⼦字串
substring('Thoma
s' from 2 for 3)
hom
substring(string from pattern)te
xt
抽取匹配 POSIX 正则表达式的⼦字串
substring('Thoma
s' from '...$')
mas
substring(string from pattern for escape)te
xt
抽取匹配SQL正则表达式的⼦字串
substring('Thoma
s' from
'%#"o_a#"_' for
'#')
oma
trim([leading | trailing | both] [characters] from string)te
xt
圣诞老人怎么画
从字串string的开头/结尾/两边/ 删除只包
含characters(缺省是⼀个空⽩)的最长的
字串
trim(both 'x' from
'xTomxx')
Tom
upper(string)te
xt
把字串转化为⼤写。upper('tom')TOM
ascii(text)int参数第⼀个字符的ASCII码ascii('x')120
btrim(string text [, characters text])te
xt
从string开头和结尾删除只包含在
characters⾥(缺省是空⽩)的字符的最长
字串
btrim('xyxtrimyyx'
,'xy')
trim
chr(int)te
xt
给出ASCII码的字符chr(65)A
convert(string text, [src_encoding name,] dest_encoding name)te
xt
把字串转换为dest_encoding
convert(
'text_in_utf8',
'UTF8', 'LATIN1')
以ISO 8859-
1编码表⽰的
text_in_utf8
initcap(text)te
xt
把每个单词的第⼀个⼦母转为⼤写,其它
的保留⼩写。单词是⼀系列字母数字组成
的字符,⽤⾮字母数字分隔。
initcap('hi
thomas')
Hi Thomas
length(string text)int string中字符的数⽬length('jo')4
lpad(string text, length int [, fill text])te
xt
通过填充字符fill(缺省时为空⽩),把string
填充为长度length。如果string已经⽐
length长则将其截断(在右边)。
lpad('hi', 5, 'xy')xyxhi
ltrim(string text [, characters text])te
xt
从字串string的开头删除只包含
characters(缺省是⼀个空⽩)的最长的字
串。
ltrim('zzzytrim','xy
z')
trim
md5(string text)te
xt
计算给出string的MD5散列,以⼗六进制
返回结果。
md5('abc')
repeat(string text, number int)te
xt
重复string number次。repeat('Pg', 4)PgPgPgPg
replace(string text, from text, to text)te
xt
把字串string⾥出现地所有⼦字串from替
换成⼦字串to。
replace('abcdefa海刚峰
bcdef', 'cd', 'XX')
abXXefabXX
ef
个性名言
rpad(string text, length int [, fill text])te
xt
通过填充字符fill(缺省时为空⽩),把string
填充为长度length。如果string已经⽐
length长则将其截断。
rpad('hi', 5, 'xy')hixyx
rtrim(string text [, character text])te
xt
从字串string的结尾删除只包含
character(缺省是个空⽩)的最长的字
rtrim('trimxxxx','x'
)
藏在心里的爱
trim
split_part(string text, delimiter text, field int)te
xt
根据delimiter分隔string返回⽣成的第field
个⼦字串(1 Ba)。
split_part('abc~@
~def~@~ghi',
'~@~', 2)
def
strpos(string, substring)te
xt
声明的⼦字串的位置。strpos('high','ig')2
substr(string, from [, count])te
xt
抽取⼦字串。
substr('alphabet',
3, 2)
ph
to_ascii(text [, encoding])te
xt
把text从其它编码转换为ASCII。to_ascii('Karel')Karel
to_hex(number int/bigint)te
xt
把number转换成其对应地⼗六进制表现
形式。
to_hex(92233720
36854775807)
7fffffffffffffff
translate(string text, from text, to text)te
xt
把在string中包含的任何匹配from中的字
符的字符转化为对应的在to中的字符。
translate('12345',
'14', 'ax')
a23x5
五、位串函数和操作符:
对于类型bit和bit varying,除了常⽤的⽐较操作符之外,还可以使⽤以下列表中由PostgreSQL提供的位串函数和操作符,其中&、|和#的位串操作数必须等长。在移位的时候,保留原始的位串的的长度。
操作符描述例⼦结果
||连接B'10001' || B'011'10001011
&按位AND B'10001' & B'01101'00001
|按位OR B'10001' | B'01101'11101
#按位XOR B'10001' # B'01101'11100
~按位NOT~ B'10001'01110
<<;按位左移B'10001' << 301000
>>按位右移B'10001' >> 200100
除了以上列表中提及的操作符之外,位串还可以使⽤字符串函数:length, bit_length, octet_length, position, substring。此外,我们还可以在整数和bit之间来回转换,如:
MyTest=# SELECT 44::bit(10);
bit
------------
0000101100
(1 row)
MyTest=# SELECT 44::bit(3);
bit
-----
100
(1 row)
MyTest=# SELECT cast(-44 as bit(12));
bit
--------------
111111010100
(1 row)
本人已死图片MyTest=# SELECT '1110'::bit(4)::integer;
int4
------
14
(1 row)
注意:如果只是转换为"bit",意思是转换成bit(1),因此只会转换成整数的最低位。
该博客中提供的所有信息均源⾃PostgreSQL官⽅⽂档,编写该篇博客的主要⽬的是便于今后的查阅,特此声明。

本文发布于:2023-07-10 02:34:58,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1088381.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:字串   函数   类型
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图