PostgreSQL – 运算符
PostgreSQL – 运算符
什么是 PostgreSQL 中的运算符?
运算符是保留字或主要用于 PostgreSQL 语句的 WHERE 子句中的字符,以执行操作,例如比较和算术运算。
运算符用于在 PostgreSQL 语句中指定条件,并用作语句中多个条件的连接词。
- 算术运算符
- 比较运算符
- 逻辑运算符
- 按位运算符
PostgreSQL 算术运算符
假设变量a 为2,变量b 为3,然后 –
Operator | 描述 | 例子 |
---|---|---|
+ | 加法 – 在运算符的任一侧添加值 | 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,然后 –
Operator | 描述 | 例子 |
---|---|---|
= | 检查两个操作数的值是否相等,如果是,则条件为真。 | (a = b) 不正确。 |
!= | 检查两个操作数的值是否相等,如果值不相等则条件为真。 | (a != b) 是真的。 |
<> | 检查两个操作数的值是否相等,如果值不相等则条件为真。 | (a <> b) 是真的。 |
> | 检查左操作数的值是否大于右操作数的值,如果是,则条件为真。 | (a > b) 不正确。 |
< | 检查左操作数的值是否小于右操作数的值,如果是,则条件为真。 | (a < b) 是真的。 |
>= | 检查左操作数的值是否大于或等于右操作数的值,如果是则条件成立。 | (a >= b) 不是真的。 |
<= | 检查左操作数的值是否小于或等于右操作数的值,如果是则条件成立。 | (a <= b) 是真的。 |
PostgreSQL 逻辑运算符
这是 PostgresSQL 中可用的所有逻辑运算符的列表。
S. No. | 运算符和描述 |
---|---|
1 |
AND AND 运算符允许在 PostgresSQL 语句的 WHERE 子句中存在多个条件。 |
2 |
NOT The NOT operator reverses the meaning of the logical operator with which it is used. Eg. NOT EXISTS, NOT BETWEEN, NOT IN etc. This is negate operator. |
3 |
OR OR 运算符用于在 PostgresSQL 语句的 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
乙 = 0000 1101
—————–
A&B = 0000 1100
A|B = 0011 1101
~A = 1100 0011
PostgreSQL 支持的按位运算符列于下表中 –
Operator | 描述 | 例子 |
---|---|---|
& | 如果两个操作数中都存在二进制 AND 运算符,则将其复制到结果中。 | (A & B) 将给出 12,即 0000 1100 |
| | 如果任一操作数中存在二进制 OR 运算符,则复制一点。 | (A | B) 将给出 61,即 0011 1101 |
~ | Binary Ones Complement Operator 是一元的,具有“翻转”位的效果。 | (~A ) 将给出 -61,它是 1100 0011 由于带符号的二进制数,以 2 的补码形式表示。 |
<< | 二元左移运算符。左操作数值向左移动右操作数指定的位数。 | A << 2 将给出 240,即 1111 0000 |
>> | 二元右移运算符。左操作数的值向右移动右操作数指定的位数。 | A >> 2 将给出 15,即 0000 1111 |
# | 按位异或。 | A # B 将给出 49,即 0100 1001 |