SQLite 是轻量级数据库,但其函数系统却一点不轻。无论是日志分析、嵌入式存储还是移动数据处理,合理运用 SQLite 函数可显著简化 SQL 逻辑、减少数据传输、提升查询效率。下面为你详细列出各类函数的用法、示例和最佳实践。
📚 目录
- 字符串处理函数
- 数学运算函数
- 聚合统计函数
- 类型转换函数
- 流程与条件函数
- 系统与辅助函数
- 出站链接与站内推荐阅读
- 参考资料
1. 字符串处理函数
SQLite 支持丰富的字符串处理函数,适合文本解析、用户输入校验等场景。
函数 | 功能 | 示例 |
---|---|---|
length(str) | 返回字符串长度 | length('hello') → 5 |
lower(str) | 转为小写 | lower('ABC') → 'abc' |
upper(str) | 转为大写 | upper('abc') → 'ABC' |
substr(str, start, len) | 子串 | substr('abcdef',2,3) → 'bcd' |
instr(haystack, needle) | 返回子串位置 | instr('hello','l') → 3 |
replace(str,a,b) | 替换 | replace('abcabc','a','x') → 'xbcxbc' |
trim(str) | 去两端空白 | trim(' abc ') → 'abc' |
ltrim(str) / rtrim(str) | 去左/右空白 |
2. 数学运算函数
SQLite 支持基本数学函数,适合嵌入式计算和数据统计:
函数 | 说明 | 示例 |
---|---|---|
abs(x) | 绝对值 | abs(-5) → 5 |
round(x, d) | 四舍五入 | round(3.14159,2) → 3.14 |
sqrt(x) | 平方根 | sqrt(16) → 4 |
pow(x, y) | 次方 | pow(2,3) → 8 |
mod(x, y) | 取模 | mod(10,3) → 1 |
random() | 返回随机整数 | |
randomblob(N) | 返回 N 字节的随机二进制 |
3. 聚合统计函数
聚合函数用于分组汇总分析,适用于 BI、报表、数据洞察等:
函数 | 描述 |
---|---|
count(*) / count(expr) | 总数 |
sum(expr) | 求和 |
avg(expr) | 平均值 |
min(expr) / max(expr) | 最小/最大值 |
group_concat(expr [, sep]) | 字符串拼接(可指定分隔符) |
示例:
SELECT department, count(*), avg(salary)
FROM employees
GROUP BY department;
4. 类型转换函数
函数 | 说明 |
---|---|
typeof(expr) | 返回值类型:text、integer、real 等 |
cast(expr AS type) | 显式类型转换 |
示例:
SELECT typeof(123.45); → 'real'
SELECT CAST('123' AS INTEGER); → 123
5. 流程与条件函数
SQLite 中可以使用以下逻辑函数来构建流程判断:
函数 | 用法 | 示例 |
---|---|---|
ifnull(a, b) | a 为 NULL 时返回 b | ifnull(NULL, 'default') → 'default' |
nullif(a, b) | 若 a = b,返回 NULL;否则返回 a | |
coalesce(a, b, c, ...) | 返回第一个非 NULL 值 |
6. 系统与辅助函数
函数 | 用法 |
---|---|
last_insert_rowid() | 返回最近插入行的 ID |
changes() | 返回上一条修改语句影响的行数 |
total_changes() | 自连接后累计影响行数 |
sqlite_version() | 返回当前 SQLite 版本 |
示例:
SELECT sqlite_version(); → '3.45.1'
7. 🔗 出站链接与站内推荐阅读
外部资源:
推荐文章(站内):
- 👉 SQLite 聚合函数进阶:自定义 group_concat 分隔符
- 👉 如何在 SQLite 中创建自定义函数(C/Python)
- 👉 SQLite 与 SQL Server/MySQL 函数对比一览
- 👉 SQLite 中实现 CASE WHEN 条件表达式
8. 📚 参考资料
- SQLite Core Functions:https://www.sqlite.org/lang_corefunc.html
- 《SQLite 权威指南》函数篇
- Stack Overflow 关于 SQLite 函数高票回答合集
- SQLite 设计文档中的函数性能比较
- 实战项目中函数使用示例(开源框架案例)
✅ 接下来的章节将进入 “SQLite 接口” 部分,涵盖 C/C++
、Java
、PHP
、Python
、Perl
等语言对 SQLite 的集成方法与实践技巧。如果准备好了,请回复“继续”。
发表回复