PostgreSQL 运算符使用详解
在 PostgreSQL 中,运算符是用于执行各种操作的符号,例如进行数学计算、比较数据、连接字符串等。以下详细介绍 PostgreSQL 中常见运算符的使用。
1. 算术运算符
算术运算符用于执行基本的数学运算,常见的算术运算符有:
| 运算符 | 描述 | 示例 |
|---|---|---|
+ |
加法 | SELECT 2 + 3; 结果为 5 |
- |
减法 | SELECT 5 - 2; 结果为 3 |
* |
乘法 | SELECT 2 * 3; 结果为 6 |
/ |
除法(对于整数相除,会截断小数部分) | SELECT 5 / 2; 结果为 2 ,若要得到精确结果,可使用浮点数 SELECT 5.0 / 2; 结果为 2.5 |
% |
取模(求余数) | SELECT 5 % 2; 结果为 1 |
^ |
幂运算 | SELECT 2 ^ 3; 结果为 8 |
2. 比较运算符
比较运算符用于比较两个值的大小或相等性,返回布尔值(
TRUE 或 FALSE),常见的比较运算符有:| 运算符 | 描述 | 示例 |
|---|---|---|
= |
等于 | SELECT 2 = 2; 结果为 TRUE |
<> 或 != |
不等于 | SELECT 2 <> 3; 结果为 TRUE |
< |
小于 | SELECT 2 < 3; 结果为 TRUE |
> |
大于 | SELECT 3 > 2; 结果为 TRUE |
<= |
小于等于 | SELECT 2 <= 2; 结果为 TRUE |
>= |
大于等于 | SELECT 3 >= 2; 结果为 TRUE |
这些运算符常用于
WHERE 子句中进行数据筛选,例如:SELECT * FROM employees WHERE salary > 5000;
3. 逻辑运算符
逻辑运算符用于组合多个条件,常见的逻辑运算符有:
| 运算符 | 描述 | 示例 |
|---|---|---|
AND |
逻辑与,所有条件都为 TRUE 时结果才为 TRUE |
SELECT * FROM employees WHERE salary > 5000 AND department_id = 1; |
OR |
逻辑或,只要有一个条件为 TRUE 结果就为 TRUE |
SELECT * FROM employees WHERE salary > 5000 OR department_id = 1; |
NOT |
逻辑非,对条件结果取反 | SELECT * FROM employees WHERE NOT salary > 5000; |
4. 字符串运算符
连接运算符 ||
用于连接两个或多个字符串:
SELECT 'Hello' || ' ' || 'World';
结果为
Hello World。模式匹配运算符
LIKE:用于模糊匹配字符串,支持%(匹配任意数量的任意字符)和_(匹配单个任意字符)。
SELECT * FROM customers WHERE name LIKE 'J%'; -- 查找以 'J' 开头的客户姓名
ILIKE:与LIKE类似,但不区分大小写。
SELECT * FROM customers WHERE name ILIKE 'j%'; -- 不区分大小写查找以 'J' 开头的客户姓名
~和~*:正则表达式匹配,~区分大小写,~*不区分大小写。
SELECT * FROM customers WHERE name ~ '^J.*'; -- 使用正则表达式查找以 'J' 开头的客户姓名
5. 位运算符
位运算符用于对二进制位进行操作,常见的位运算符有:
| 运算符 | 描述 | 示例 | |||
|---|---|---|---|---|---|
& |
按位与 | SELECT 5 & 3; (二进制 101 & 011)结果为 1 |
|||
| ` | ` | 按位或 | `SELECT 5 | 3;(二进制101` |
011)结果为 7 |
# |
按位异或 | SELECT 5 # 3; (二进制 101 # 011)结果为 6 |
|||
~ |
按位取反 | SELECT ~5; 结果为 -6 (二进制补码表示) |
|||
<< |
左移 | SELECT 5 << 1; (二进制 101 左移一位)结果为 10 |
|||
>> |
右移 | SELECT 5 >> 1; (二进制 101 右移一位)结果为 2 |
6. 成员运算符
IN:用于判断一个值是否在指定的列表中。
SELECT * FROM employees WHERE department_id IN (1, 2, 3);
NOT IN:用于判断一个值是否不在指定的列表中。
SELECT * FROM employees WHERE department_id NOT IN (1, 2, 3);
7. 空值比较运算符
IS NULL:用于判断一个值是否为NULL。
SELECT * FROM employees WHERE manager_id IS NULL;
IS NOT NULL:用于判断一个值是否不为NULL。
SELECT * FROM employees WHERE manager_id IS NOT NULL;
以上就是 PostgreSQL 中常见运算符的详细介绍,合理使用这些运算符可以完成各种复杂的数据操作和查询。
浙公网安备 33010602011771号