运算符
算数运算符
运算符 | 描述 | 示例 |
---|
+ | 加法 | 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 |
比较运算符
运算符 | 描述 | 示例 |
---|
= | 等于 | SELECT 2 = 2; 结果为 TRUE |
<> | 或 != 不等于 | SELECT 2 <> 3; 结果为 TRUE |
< | 小于 | SELECT 2 < 3; 结果为 TRUE |
> | 大于 | SELECT 3 > 2; 结果为 TRUE |
<= | 小于等于 | SELECT 2 <= 2; 结果为 TRUE |
>= | 大于等于 | SELECT 3 >= 2; 结果为 TRUE |
逻辑运算符
运算符 | 描述 | 示例 |
---|
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; |
字符串运算符
用于连接两个或多个字符串:
SELECT 'Hello' || ' ' || 'World';结果为 Hello World。
- 模式匹配运算符
用于模糊匹配字符串,支持 %(匹配任意数量的任意字符)和 _(匹配单个任意字符)。
-- 查找以 'J' 开头的客户姓名
SELECT * FROM customers WHERE name LIKE 'J%';
-- 不区分大小写查找以 'J' 开头的客户姓名
SELECT * FROM customers WHERE name ILIKE 'j%';
- ~ 和 ~*:正则表达式匹配,~ 区分大小写,~* 不区分大小写。
-- 使用正则表达式查找以 'J' 开头的客户姓名
SELECT * FROM customers WHERE name ~ '^J.*';
位运算
运算符 | 描述 | 示例 |
---|
& | 按位与 | 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 |
成员运算符
SELECT * FROM employees WHERE department_id IN (1, 2, 3);
- NOT IN:用于判断一个值是否不在指定的列表中。
SELECT * FROM employees WHERE department_id NOT IN (1, 2, 3);
空值比较运算符
SELECT * FROM employees WHERE manager_id IS NULL;
- IS NOT NULL:用于判断一个值是否不为 NULL。
SELECT * FROM employees WHERE manager_id IS NOT NULL;