一、逻辑操作符:

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

二、比较操作符:

下面是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 + 3 5
- 2 - 3 -1
* 2 * 3 6
/ 4 / 2 2
% 5 % 4 1
^ 2.0 ^ 3.0 8
|/ 平方根 |/ 25.0 5
||/ 立方根 ||/ 27.0 3
! 阶乘 5 ! 120
!! 阶乘 !! 5 120
@ 绝对值 @ -5.0 5
& 按位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) 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() double 0.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 text 字串连接 'Post' || 'greSQL' PostgreSQL
bit_length(string) int 字串里二进制位的个数 bit_length('jose') 32
char_length(string) int 字串中的字符个数 char_length('jose') 4
convert(string using conversion_name) text 使用指定的转换名字改变编码。 convert('PostgreSQL' using iso_8859_1_to_utf8) 'PostgreSQL'
lower(string) text 把字串转化为小写 lower('TOM') tom
octet_length(string) int 字串中的字节数 octet_length('jose') 4
overlay(string placing string from int [for int]) text 替换子字串 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]) text 抽取子字串 substring('Thomas' from 2 for 3) hom
substring(string from pattern) text 抽取匹配 POSIX 正则表达式的子字串 substring('Thomas' from '...$') mas
substring(string from pattern for escape) text 抽取匹配SQL正则表达式的子字串 substring('Thomas' from '%#"o_a#"_' for '#') oma
trim([leading | trailing | both] [characters] from string) text 从字串string的开头/结尾/两边/ 删除只包含characters(缺省是一个空白)的最长的字串 trim(both 'x' from 'xTomxx') Tom
upper(string) text 把字串转化为大写。 upper('tom') TOM
ascii(text) int 参数第一个字符的ASCII码 ascii('x') 120
btrim(string text [, characters text]) text 从string开头和结尾删除只包含在characters里(缺省是空白)的字符的最长字串 btrim('xyxtrimyyx','xy') trim
chr(int) text 给出ASCII码的字符 chr(65) A
convert(string text, [src_encoding name,] dest_encoding name) text 把字串转换为dest_encoding convert( 'text_in_utf8', 'UTF8', 'LATIN1') 以ISO 8859-1编码表示的text_in_utf8
initcap(text) text 把每个单词的第一个子母转为大写,其它的保留小写。单词是一系列字母数字组成的字符,用非字母数字分隔。 initcap('hi thomas') Hi Thomas
length(string text) int string中字符的数目 length('jose') 4
lpad(string text, length int [, fill text]) text 通过填充字符fill(缺省时为空白),把string填充为长度length。 如果string已经比length长则将其截断(在右边)。 lpad('hi', 5, 'xy') xyxhi
ltrim(string text [, characters text]) text 从字串string的开头删除只包含characters(缺省是一个空白)的最长的字串。 ltrim('zzzytrim','xyz') trim
md5(string text) text 计算给出string的MD5散列,以十六进制返回结果。 md5('abc')  
repeat(string text, number int) text 重复string number次。 repeat('Pg', 4) PgPgPgPg
replace(string text, from text, to text) text 把字串string里出现地所有子字串from替换成子字串to。 replace('abcdefabcdef', 'cd', 'XX') abXXefabXXef
rpad(string text, length int [, fill text]) text 通过填充字符fill(缺省时为空白),把string填充为长度length。如果string已经比length长则将其截断。 rpad('hi', 5, 'xy') hixyx
rtrim(string text [, character text]) text 从字串string的结尾删除只包含character(缺省是个空白)的最长的字 rtrim('trimxxxx','x') trim
split_part(string text, delimiter text, field int) text 根据delimiter分隔string返回生成的第field个子字串(1 Base)。 split_part('abc~@~def~@~ghi', '~@~', 2) def
strpos(string, substring) text 声明的子字串的位置。 strpos('high','ig') 2
substr(string, from [, count]) text 抽取子字串。 substr('alphabet', 3, 2) ph
to_ascii(text [, encoding]) text 把text从其它编码转换为ASCII。 to_ascii('Karel') Karel
to_hex(number int/bigint) text 把number转换成其对应地十六进制表现形式。 to_hex(9223372036854775807) 7fffffffffffffff
translate(string text, from text, to text) text 把在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' << 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

postgre连接符相关推荐

  1. 零基础入门学习 Python(4)条件分支、while循环、逻辑连接符、引入外援

    Python的比较操作符 Python的比较操作符 含义 > 左边大于右边 >= 左边大于等于右边 < 左边小于右边 <= 左边小于等于右边 == 左边等于右边 != 左边不等 ...

  2. 22、输入和输出重定向,管道,命令连接符,命令替换符

    2019独角兽企业重金招聘Python工程师标准>>> (一)输入/输出重定向 标准输入--standard input:从键盘上输入 标准输出--standard output:在 ...

  3. Java的知识点5——扩展赋值运算符、 关系运算符、 逻辑运算符、字符串连接符、 条件运算符

    扩展运算符 程序 public class Dd1 {public static void main(String[] args) {int a=3;int b=4;a+=b;//相当于a=a+b;S ...

  4. 【C++】46.宏定义##连接符和符#的使用

    推荐下面两篇博客: 1.C/C++语言宏定义##连接符和符#的使用 2.c++/c中的##连接符的使用 在c/c++语言中,我们可以使用##来对一些字符进行连接,方便使用,尤其是在宏定义中使用该符号, ...

  5. NLP:对字符串按照一个、多个自定义分隔符进行分割、将列表转为字符串同时自定义连接符

    NLP:对字符串按照一个.多个自定义分隔符进行分割.将列表转为字符串同时自定义连接符 目录 对字符串按照一个.多个自定义分隔符进行分割 将列表转为字符串同时自定义连接符 对字符串按照一个.多个自定义分 ...

  6. pycharm 无法导包、无法导入模块(模块名不能含有连接符“-”)

    注意,模块的命名很重要,名字中下划线是可以接受的,但是连接符"-"就不行了,如: 将"-"改成下划线就可以了 如果已经存在导包语句后,要将被导入的模块名修改为不 ...

  7. sqlplus登录方式,列出所有表,列出表结构,sqlplus行和列显示设置,别名,空值问题,连接符,DISTINCT

     1 sqlplus登录方式: 普通用户登录: 登录eg:C:\>sqlplusscott/11  (格式:sqlplus 用户名/密码) 退出eg:quit退出 超级用户登录 C:\> ...

  8. C/C++语言宏定义##连接符和符#的使用

    C/C++语言宏定义##连接符和符#的使用     [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/details/53113187 (一) ...

  9. C语言宏定义##连接符和#符的使用及其它宏定义注意事项

    C语言中如何使用宏C(和C++)中的宏(Macro)属于编译器预处理的范畴,属于编译期概念(而非运行期概念).下面对常遇到的宏的使用问题做了简单总结. 关于#和## 在C语言的宏中,#的功能是将其后面 ...

最新文章

  1. Java中导入错误的jar所引发的问题
  2. 感情沟通出了问题要怎么解决_对待感情最理性的星座,懂得如何沟通,会想办法解决问题...
  3. mac homebrew装mysql_mac系统homebrew安装mysql
  4. 单例设计模式-饿汉式
  5. 什么是大数据,大数据到底应该如何学?
  6. 浪潮服务器nf5280m2安装系统,破茧化蝶之作 浪潮NF5280M2服务器评测
  7. 在Android中显示GIF动画
  8. python tkinter计算器实例_Python+tkinter使用80行代码实现一个计算器实例
  9. 在ecshop商品详情页显示供货商
  10. 【Foreign】朗格拉日计数 [暴力]
  11. android拷贝文件到内部存储,将文件保存在内部存储android中
  12. php 日期和时间 (转)
  13. 力软部署oracle,力软敏捷开发框架
  14. 【数据结构】——各种树的定义
  15. Java 生成微信群头像 九宫格头像
  16. 公网SSH远程连接Ubuntu【免费内网穿透】
  17. 让你收入翻倍,做自媒体不会写文案?用这3款文案自动生成工具
  18. Linux快捷键大全
  19. 计算机/设备和驱动器下有一个空白盘符无法删除
  20. Selenium使用浏览器自动登录校园网

热门文章

  1. 2016-2017 ACM-ICPC Northeastern European Regional Contest (NEERC 16)
  2. 【山河送书第五期】:《码上行动:利用Python与ChatGPT高效搞定Excel数据分析》参与活动,送书三本!!
  3. php 判断生肖,php函数 判断干支、生肖和星座
  4. TensorRT ONNX 基础
  5. ENVI无法加载从USGS上下载的LANDSAT8数据(MTL)
  6. Elementui实现省市县三级联动
  7. 测测你一生会爱几个人(男女通用)
  8. 内容营销专家刘鑫炜:100元就能在100个大V公众号上曝光千万次
  9. java实现第六届蓝桥杯四阶幻方
  10. 微信小程序(页面获取组件实例对象来操做组件)