SQLite - 运算符
SQLite - 运算符
Section titled “SQLite - 运算符”什么是运算符?
Section titled “什么是运算符?”运算符是主要用于 WHERE 子句中的保留字或字符,用于执行比较和算术等操作。运算符是用于在查询中过滤数据和创建复杂条件的基本组成部分。
SQLite 支持四种主要类型的运算符:
- 算术运算符
- 比较运算符
- 逻辑运算符
- 位运算符
SQLite 算术运算符
Section titled “SQLite 算术运算符”这些运算符对数值执行数学计算。
| 运算符 | 描述 | 示例 |
|---|---|---|
+ | 加法 | SELECT 10 + 5; 返回 15 |
- | 减法 | SELECT 10 - 5; 返回 5 |
* | 乘法 | SELECT 10 * 5; 返回 50 |
/ | 除法 | SELECT 10 / 5; 返回 2 |
% | 取模(除法的余数) | SELECT 10 % 3; 返回 1 |
SQLite 比较运算符
Section titled “SQLite 比较运算符”这些运算符比较两个表达式并返回布尔值(true 或 false)。它们对 WHERE 子句至关重要。
| 运算符 | 描述 | 示例 |
|---|---|---|
= or == | 等于。两者都是别名。 | ... WHERE price = 100; |
!= or <> | 不等于。两者都是别名。 | ... WHERE status != 'shipped'; |
> | 大于 | ... WHERE quantity > 50; |
< | 小于 | ... WHERE age < 18; |
>= | 大于或等于 | ... WHERE score >= 90; |
<= | 小于或等于 | ... WHERE discount <= 0.5; |
SQLite 逻辑运算符
Section titled “SQLite 逻辑运算符”这些运算符组合多个布尔条件以形成更复杂的过滤器。
| 运算符 | 描述 |
|---|---|
| AND | 如果所有条件都为真,则返回 true。... WHERE price < 100 AND in_stock = 1 |
| OR | 如果任一条件为真,则返回 true。... WHERE country = 'USA' OR country = 'Canada' |
| NOT | 反转条件的结果。... WHERE NOT country = 'Germany' |
| BETWEEN | 检查值是否在某个范围内(包含边界)。... WHERE price BETWEEN 50 AND 100 等同于 price >= 50 AND price <= 100 |
| IN | 检查值是否与列表中的任何值匹配。... WHERE status IN ('pending', 'processing') |
| LIKE | 使用通配符(% 表示任意字符序列,_ 表示单个字符)对字符串执行模式匹配。 |
| GLOB | 类似于 LIKE,但使用 Unix 风格的通配符(* 表示任意序列,? 表示单个字符)并且区分大小写。 |
| IS NULL | 检查值是否为 NULL。... WHERE shipping_date IS NULL |
| IS NOT NULL | 检查值是否不为 NULL。... WHERE shipping_date IS NOT NULL |
| EXISTS | 检查子查询中是否存在行。常用于高效的连接。 |
| || | 字符串连接。SELECT 'Hello' || ' ' || 'World'; 返回 ‘Hello World’。注意:在标准 SQL 中,这表示逻辑或(OR)。 |
SQLite 位运算符
Section titled “SQLite 位运算符”位运算符对整数值的单个位执行操作。它们用于专门的应用程序,例如操纵权限标志。
假设整数 A = 60(二进制 00111100)和 B = 13(二进制 00001101):
| 运算符 | 描述 | 示例 |
|---|---|---|
& (Bitwise AND) | 如果两个操作数中都为 1,则将位设置为 1。 | (A & B) 的结果是 12(二进制 00001100) |
| (Bitwise OR) | 如果任一操作数中为 1,则将位设置为 1。 | (A | B) 的结果是 61(二进制 00111101) |
~ (Bitwise NOT) | 反转操作数的所有位。 | (~A) 的结果是 -61,这是由于带符号整数的二进制补码表示。 |
<< (Left Shift) | 将位向左移动,右侧填充零。 | A << 2 的结果是 240(二进制 11110000) |
>> (Right Shift) | 将位向右移动,丢弃右侧的位。 | A >> 2 的结果是 15(二进制 00001111) |