SQLite 运算符

SQLite 的运算符用于在 WHERE 子句、表达式或其他 SQL 语句中进行条件判断、计算或比较。以下按类型分类详解:


1. 算术运算符

用于数值计算。

运算符说明示例结果
+加法5 + 38
-减法10 - 46
*乘法3 * 412
/除法(整数除法向下取整)10 / 33
%取模(余数)10 % 31

提示:除法结果为整数,若需浮点数,使用 CAST(10 AS REAL)/3


2. 比较运算符

用于条件比较,返回 TRUE(1)、FALSE(0)或 NULL

运算符说明示例
=等于age = 25
==等同于 =(不推荐)
!=<>不等于age != 30
>大于salary > 5000
<小于id < 10
>=大于等于score >= 90
<=小于等于price <= 100
IS精确比较(包括 NULL)value IS NULL
IS NOT不等于(包括 NULL)value IS NOT NULL

3. 逻辑运算符

组合多个条件。

运算符说明示例
ANDage > 18 AND country = 'SG'
ORstatus = 'active' OR status = 'new'
NOTNOT deleted

优先级:NOT > AND > OR,建议使用括号明确逻辑。


4. 字符串运算符

用于文本匹配和拼接。

运算符说明示例
||字符串拼接'Hello' || ' ' || 'World''Hello World'
LIKE模式匹配name LIKE '张%'(以“张”开头)
GLOB类似 LIKE,但区分大小写,使用 *?file GLOB '*.txt'
MATCH全文搜索(FTS 表专用)(需 FTS3/FTS5 扩展)
REGEXP正则表达式匹配(需启用)email REGEXP '^[a-z]+@'(需自定义函数)

LIKE 通配符:

  • %:匹配任意长度字符
  • _:匹配单个字符
-- 查找名字包含“三”的用户
SELECT * FROM users WHERE name LIKE '%三%';

5. 位运算符

对整数进行位操作。

运算符说明示例结果(十进制)
&按位与5 & 31 (0101 & 0011)
|按位或5 | 37 (0101 | 0011)
~按位取反~5取决于整数类型
<<左移1 << 24
>>右移8 >> 14

6. NULL 判断运算符

专用于处理 NULL 值。

-- 查找 email 为空的记录
SELECT * FROM users WHERE email IS NULL;

-- 查找 email 不为空
SELECT * FROM users WHERE email IS NOT NULL;

注意:email = NULL 永远返回 NULL(不是 true),必须用 IS NULL


7. IN、BETWEEN、EXISTS

常视为“条件运算符”。

-- IN:值在列表中
WHERE country IN ('SG', 'MY', 'ID')

-- BETWEEN:范围(包含边界)
WHERE age BETWEEN 20 AND 30

-- EXISTS:子查询存在结果
WHERE EXISTS (SELECT 1 FROM orders WHERE user_id = users.id)

8. CASE 条件表达式(类似运算符)

SELECT name,
       CASE 
           WHEN age < 18 THEN '未成年'
           WHEN age < 65 THEN '成年'
           ELSE '老年'
       END AS age_group
FROM users;

总结表格

类型运算符示例
算术+ - * / %
比较= != > < >= <= IS IS NOT
逻辑AND OR NOT
字符串|| LIKE GLOB
位运算& | ~ << >>
其他IN BETWEEN EXISTS CASE

需要结合你的表结构写查询示例吗?请提供 CREATE TABLE 语句!

文章已创建 2305

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部