PostgreSQL - 运算符



什么是 PostgreSQL 中的运算符?

运算符是保留字或字符,主要用于 PostgreSQL 语句的 WHERE 子句中执行操作,例如比较和算术运算。

运算符用于指定 PostgreSQL 语句中的条件,并作为语句中多个条件的连接词。

  • 算术运算符
  • 比较运算符
  • 逻辑运算符
  • 位运算符

PostgreSQL 算术运算符

假设变量a为 2,变量b为 3,则:

示例

运算符 描述 示例
+ 加法 - 将运算符两侧的值相加 a + b 将得到 5
- 减法 - 从左操作数减去右操作数 a - b 将得到 -1
* 乘法 - 将运算符两侧的值相乘 a * b 将得到 6
/ 除法 - 将左操作数除以右操作数 b / a 将得到 1
% 取模 - 将左操作数除以右操作数并返回余数 b % a 将得到 1
^ 幂运算 - 这将给出右操作数的指数值 a ^ b 将得到 8
|/ 平方根 |/ 25.0 将得到 5
||/ 立方根 ||/ 27.0 将得到 3
! 阶乘 5 ! 将得到 120
!! 阶乘(前缀运算符) !! 5 将得到 120

PostgreSQL 比较运算符

假设变量 a 为 10,变量 b 为 20,则:

显示示例

运算符 描述 示例
= 检查两个操作数的值是否相等,如果相等,则条件为真。 (a = b) 为假。
!= 检查两个操作数的值是否相等,如果不相等,则条件为真。 (a != b) 为真。
<> 检查两个操作数的值是否相等,如果不相等,则条件为真。 (a <> b) 为真。
> 检查左操作数的值是否大于右操作数的值,如果大于,则条件为真。 (a > b) 为假。
< 检查左操作数的值是否小于右操作数的值,如果小于,则条件为真。 (a < b) 为真。
>= 检查左操作数的值是否大于或等于右操作数的值,如果大于或等于,则条件为真。 (a >= b) 为假。
<= 检查左操作数的值是否小于或等于右操作数的值,如果小于或等于,则条件为真。 (a <= b) 为真。

PostgreSQL 逻辑运算符

以下是 PostgreSQL 中所有可用逻辑运算符的列表。

显示示例

序号 运算符和描述
1

AND

AND 运算符允许在 PostgreSQL 语句的 WHERE 子句中存在多个条件。

2

NOT

NOT 运算符反转与其一起使用的逻辑运算符的含义。例如 NOT EXISTS、NOT BETWEEN、NOT IN 等。这是否定运算符

3

OR

OR 运算符用于组合 PostgreSQL 语句 WHERE 子句中的多个条件。

PostgreSQL 位串运算符

位运算符作用于位并执行逐位运算。& 和 | 的真值表如下:

p q p & q p | q
0 0 0 0
0 1 0 1
1 1 1 1
1 0 0 1

假设 A = 60;B = 13;现在以二进制格式,它们将如下所示:

A = 0011 1100

B = 0000 1101

-----------------

A&B = 0000 1100

A|B = 0011 1101

~A  = 1100 0011

显示示例

PostgreSQL 支持的位运算符列在下面的表中:

运算符 描述 示例
& 二进制 AND 运算符复制如果它存在于两个操作数中则将位复制到结果中。 (A & B) 将得到 12,即 0000 1100
| 二进制 OR 运算符复制如果它存在于任一操作数中则将位复制到结果中。 (A | B) 将得到 61,即 0011 1101
~ 二进制一补运算符是一元的,其作用是“翻转”位。 (~A ) 将得到 -61,由于带符号二进制数,在二进制补码形式下为 1100 0011。
<< 二进制左移运算符。左操作数的值将向左移动由右操作数指定的位数。 A << 2 将得到 240,即 1111 0000
>> 二进制右移运算符。左操作数的值将向右移动由右操作数指定的位数。 A >> 2 将得到 15,即 0000 1111
# 按位异或。 A # B 将得到 49,即 00110001
广告