Postgresql 简明教程

PostgreSQL - Operators

What is an Operator in PostgreSQL?

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

An operator is a reserved word or a character used primarily in a PostgreSQL statement’s WHERE clause to perform operation(s), such as comparisons and arithmetic operations.

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

Operators are used to specify conditions in a PostgreSQL statement and to serve as conjunctions for multiple conditions in a statement.

  1. Arithmetic operators

  2. Comparison operators

  3. Logical operators

  4. Bitwise operators

PostgreSQL Arithmetic Operators

假设变量 a 存储 2,变量 b 存储 3,那么 −

Assume variable a holds 2 and variable b holds 3, then −

Operator

Description

Example

+

Addition - Adds values on either side of the operator

a + b will give 5

-

Subtraction - Subtracts right hand operand from left hand operand

a - b will give -1

*

Multiplication - Multiplies values on either side of the operator

a * b will give 6

/

Division - Divides left hand operand by right hand operand

b / a will give 1

%

Modulus - Divides left hand operand by right hand operand and returns remainder

b % a will give 1

^

Exponentiation - This gives the exponent value of the right hand operand

a ^ b will give 8

/

square root

/ 25.0 will give 5

/

Cube root

/ 27.0 will give 3

!

factorial

5 ! will give 120

!!

factorial (prefix operator)

!! 5 will give 120

PostgreSQL Comparison Operators

假设变量 a 等于 10,变量 b 等于 20,则 −

Assume variable a holds 10 and variable b holds 20, then −

Operator

Description

Example

=

Checks if the values of two operands are equal or not, if yes then condition becomes true.

(a = b) is not true.

!=

Checks if the values of two operands are equal or not, if values are not equal then condition becomes true.

(a != b) is true.

<>

Checks if the values of two operands are equal or not, if values are not equal then condition becomes true.

(a <> b) is true.

>

Checks if the value of left operand is greater than the value of right operand, if yes then condition becomes true.

(a > b) is not true.

<

Checks if the value of left operand is less than the value of right operand, if yes then condition becomes true.

(a < b) is true.

>=

Checks if the value of left operand is greater than or equal to the value of right operand, if yes then condition becomes true.

(a >= b) is not true.

Checks if the value of left operand is less than or equal to the value of right operand, if yes then condition becomes true.

(a ⇐ b) is true.

PostgreSQL Logical Operators

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

Here is a list of all the logical operators available in PostgresSQL.

S. No.

Operator & Description

1

AND The AND operator allows the existence of multiple conditions in a PostgresSQL statement’s WHERE clause.

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 The OR operator is used to combine multiple conditions in a PostgresSQL statement’s WHERE clause.

PostgreSQL Bit String Operators

按位运算符处理位,并执行逐位运算。& 和 | 的真值表如下 −

Bitwise operator works on bits and performs bit-by-bit operation. The truth table for & and | is as follows −

p

q

p &

p

q

0

0

0

0

0

1

0

1

1

1

1

1

1

0

0

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

Assume if A = 60; and B = 13; now in binary format they will be as follows −

A = 0011 1100

B = 0000 1101

A&B = 0000 1100

A|B = 0011 1101

~A  = 1100 0011

link:../postgresql/postgresql_bitwise-operators.html[Show Examples]

The Bitwise operators supported by PostgreSQL are listed in the following table −
[%autowidth]
|===

|Operator|Description|Example
|&|Binary AND Operator copies a bit to the result if it exists in both operands.|(A & B) will give 12 which is 0000 1100
|||Binary OR Operator copies a bit if it exists in either operand.|(A | B) will give 61 which is 0011 1101
|~|Binary Ones Complement Operator is unary and has the effect of 'flipping' bits.|(~A ) will give -61 which is 1100 0011 in 2's complement form due to a signed binary number.
|<<|Binary Left Shift Operator. The left operands value is moved left by the number of bits specified by the right operand.|A << 2 will give 240 which is 1111 0000
|>>|Binary Right Shift Operator. The left operands value is moved right by the number of bits specified by the right operand.|A >> 2 will give 15 which is 0000 1111
|#|bitwise XOR.|A # B will give 49 which is 00110001
|===