PostgreSQL学习手册(函数和 *** 作符<一>)

PostgreSQL学习手册(函数和 *** 作符<一>),第1张

概述一、逻辑 *** 作符:     常用的逻辑 *** 作符有:AND、OR和NOT。其语义与其它编程语言中的逻辑 *** 作符完全相同。 二、比较 *** 作符:     下面是PostgreSQL中提供的比较 *** 作符列表: *** 作符 描述 < 小于 > 大于 <= 小于或等于 >= 大于或等于 = 等于 != 不等于     比较 *** 作符可以用于所有可以比较的数据类型。所有比较 *** 作符都是双目 *** 作符,且返回boolean类型。除了比较

一、逻辑 *** 作符:

常用的逻辑 *** 作符有:ANDORNOT。其语义与其它编程语言中的逻辑 *** 作符完全相同。

二、比较 *** 作符:

下面是Postgresql中提供的比较 *** 作符列表:

*** 作符 描述
< 小于
> 大于
<= 小于或等于
>= 大于或等于
= 等于
!= 不等于

比较 *** 作符可以用于所有可以比较的数据类型。所有比较 *** 作符都是双目 *** 作符,且返回boolean类型。除了比较 *** 作符以外,我们还可以使用BETWEEN语句,如:
aBETWEENxANDy等效于a >= xANDa <= y
aNOT BETWEENxANDy等效于a < xORa > y

三、 数学函数和 *** 作符:

下面是Postgresql中提供的数学 *** 作符列表:

描述 例子 结果
+ 2 + 3 5
- 2 - 3 -1
* 2 * 3 6
/ 4 / 2 2
% 5 % 4 1
^ 2.0 ^ 3.0 8
|/ 平方根 |/ 25.0 ||/ 立方根 ||/ 27.0 3
! 阶乘 5 ! 120
!! !! 5 @ 绝对值 @ -5.0 & 按位AND 91 & 15 11
| 按位OR 32 | 3 35
# 按位XOR 17 # 5 20
~ 按位NOT ~1 -2
<< 按位左移 1 << 4 16
>> 按位右移 8 >> 2 2

按位 *** 作符只能用于整数类型,而其它的 *** 作符可以用于全部数值数据类型。按位 *** 作符还可以用于位串类型bit和bit varying,

下面是Postgresql中提供的数学函数列表,需要说明的是,这些函数中有许多都存在多种形式,区别只是参数类型不同。除非特别指明,任何特定形式的函数都返回和它的参数相同的数据类型。

函数 返回类型
例子
abs(x) abs(-17.4) 17.4
cbrt(double) cbrt(27.0) 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) log(b numeric,x numeric) numeric指定底数的对数 log(2.0,64.0) 6.0000000000
mod(y,x) 取余数 mod(9,4) pi()
double "π"常量 3.14159265358979
power(a double,b double) 求a的b次幂 power(9.0,3.0) 729
power(a numeric,b numeric) numeric radians(double) 把角度转为弧度 radians(45.0) 0.785398163397448
random() 0.0到1.0之间的随机数值 random()
round(double/numeric) 圆整为最接近的整数 round(42.4) 42
round(v numeric,s int) 圆整为s位小数数字 round(42.438,2) 42.44
sign(double/numeric) 参数的符号(-1,+1)
sign(-8.4) sqrt(double/numeric) sqrt(2.0) 1.4142135623731
trunc(double/numeric) 截断(向零靠近) trunc(42.8) trunc(v numeric,255); Font-size:13px">截断为s小数位置的数字 trunc(42.438,255); Font-size:13px">42.43

三角函数列表:

函数 描述
acos(x) 反余弦
asin(x) 反正弦
atan(x) 反正切
atan2(x,y) 正切 y/x 的反函数
cos(x) 余弦
cot(x) 余切
sin(x) 正弦
tan(x) 正切


四、字符串函数和 *** 作符:

下面是Postgresql中提供的字符串 *** 作符列表:

函数 返回类型 描述 例子 结果
string || string text 字串连接 'Post' || 'gresql' Postgresql
bit_length(string) int 字串里二进制位的个数 bit_length('jose') 32
char_length(string) 字串中的字符个数 char_length('jose') 4
convert(string using conversion_name) 使用指定的转换名字改变编码。 convert('Postgresql' using iso_8859_1_to_utf8) 'Postgresql'
lower(string) 把字串转化为小写 lower('TOM') tom
octet_length(string) 字串中的字节数 octet_length('jose') overlay(string placing string from int [for int]) 替换子字串 overlay('Txxxxas' placing 'hom' from 2 for 4) Thomas
position(substring in string) 指定的子字串的位置 position('om' in 'Thomas') 3
substring(string [from int] [for int]) 抽取子字串 substring('Thomas' from 2 for 3) hom
substring(string from pattern) 抽取匹配 POSIX 正则表达式的子字串 substring('Thomas' from '...$') mas
substring(string from pattern for escape) 抽取匹配sql正则表达式的子字串 substring('Thomas' from '%#"o_a#"_' for '#') oma
trim([leading | trailing | both] [characters] from string) 从字串string的开头/结尾/两边/ 删除只包含characters(缺省是一个空白)的最长的字串 trim(both 'x' from 'xTomxx') Tom
upper(string) 把字串转化为大写。 upper('tom') TOM
ascii(text) 参数第一个字符的ASCII码 ascii('x') 120
btrim(string text [,characters text]) 从string开头和结尾删除只包含在characters里(缺省是空白)的字符的最长字串 btrim('xyxtrimyyx','xy') trim
chr(int) 给出ASCII码的字符 chr(65) A
convert(string text,[src_enCoding name,] dest_enCoding name) 把字串转换为dest_enCoding convert( 'text_in_utf8','UTF8','latin1') 以ISO 8859-1编码表示的text_in_utf8
initcap(text) 把每个单词的第一个子母转为大写,其它的保留小写。单词是一系列字母数字组成的字符,用非字母数字分隔。 initcap('hi thomas') Hi Thomas
length(string text) string中字符的数目 length('jose') lpad(string text,length int [,fill text]) 通过填充字符fill(缺省时为空白),把string填充为长度length。 如果string已经比length长则将其截断(在右边)。 lpad('hi',5,255)">xyxhi
ltrim(string text [,255)">从字串string的开头删除只包含characters(缺省是一个空白)的最长的字串。 ltrim('zzzytrim','xyz') md5(string text) 计算给出string的MD5散列,以十六进制返回结果。 md5('abc')
repeat(string text,number int) 重复string number次。 repeat('Pg',255)">PgPgPgPg
replace(string text,from text,to text) 把字串string里出现地所有子字串from替换成子字串to。 replace('abcdefabcdef','cd','XX') abXXefabXXef
rpad(string text,255)">通过填充字符fill(缺省时为空白),把string填充为长度length。如果string已经比length长则将其截断。 rpad('hi',255)">hixyx
rtrim(string text [,character text]) 从字串string的结尾删除只包含character(缺省是个空白)的最长的字 rtrim('trimxxxx','x') split_part(string text,delimiter text,fIEld int) 根据delimiter分隔string返回生成的第fIEld个子字串(1 Base)。 split_part('abc~@~def~@~ghi','~@~',255)">def
strpos(string,substring) 声明的子字串的位置。 strpos('high','ig') 2
substr(string,from [,count]) 抽取子字串。 substr('Alphabet',3,255)">ph
to_ascii(text [,enCoding]) 把text从其它编码转换为ASCII。 to_ascii('Karel') Karel
to_hex(number int/bigint) 把number转换成其对应地十六进制表现形式。 to_hex(9223372036854775807) 7fffffffffffffff
translate(string text,255)">把在string中包含的任何匹配from中的字符的字符转化为对应的在to中的字符。 translate('12345','14','ax') a23x5

五、位串函数和 *** 作符:

对于类型bit和bit varying,除了常用的比较 *** 作符之外,还可以使用以下列表中由Postgresql提供的位串函数和 *** 作符,其中&、|和#的位串 *** 作数必须等长。在移位的时候,保留原始的位串的的长度。

*** 作符 描述 例子 结果
|| 连接 B'10001' || B'011' 10001011
B'10001' & B'01101' 00001
B'10001' | B'01101' 11101
B'10001' # B'01101' 11100
~ B'10001' 01110
B'10001' << 3 01000
B'10001' >> 2 00100

除了以上列表中提及的 *** 作符之外,位串还可以使用字符串函数: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),因此只会转换成整数的最低位。

转载:http://www.cnblogs.com/stephen-liu74/archive/2012/05/02/2294071.HTML

总结

以上是内存溢出为你收集整理的PostgreSQL学习手册(函数和 *** 作符<一>)全部内容,希望文章能够帮你解决PostgreSQL学习手册(函数和 *** 作符<一>)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1174904.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存