SQLite 是一款轻量级的嵌入式数据库,提供了丰富的内置函数,以下将分类介绍常见的 SQLite 函数及其详细说明、用法和示例:
字符串函数
1. LENGTH()
- 说明:返回字符串的字符数。
- 用法:
LENGTH(string)
- 示例:
收起
sql
SELECT LENGTH('Hello');
-- 输出: 5
2. SUBSTR()
- 说明:从字符串中提取子字符串。
- 用法:
SUBSTR(string, start [, length])
,start
从 1 开始计数,若省略length
则截取到字符串末尾。 - 示例:
收起
sql
SELECT SUBSTR('Hello World', 7, 5);
-- 输出: World
3. UPPER()
和 LOWER()
- 说明:
UPPER()
将字符串转换为大写,LOWER()
将字符串转换为小写。 - 用法:
UPPER(string)
LOWER(string)
- 示例:
收起
sql
SELECT UPPER('hello');
-- 输出: HELLO
SELECT LOWER('WORLD');
-- 输出: world
4. TRIM()
- 说明:去除字符串两端的空格或指定字符。
- 用法:
TRIM([characters FROM] string)
- 示例:
收起
sql
SELECT TRIM(' Hello ');
-- 输出: Hello
SELECT TRIM('xyz' FROM 'xyzHelloxyz');
-- 输出: Hello
数值函数
1. ABS()
- 说明:返回一个数的绝对值。
- 用法:
ABS(number)
- 示例:
收起
sql
SELECT ABS(-10);
-- 输出: 10
2. ROUND()
- 说明:对数值进行四舍五入。
- 用法:
ROUND(number [, decimal_places])
,若省略decimal_places
则四舍五入为整数。 - 示例:
收起
sql
SELECT ROUND(3.14159, 2);
-- 输出: 3.14
3. CEIL()
和 FLOOR()
- 说明:
CEIL()
返回大于或等于给定数值的最小整数,FLOOR()
返回小于或等于给定数值的最大整数。 - 用法:
CEIL(number)
FLOOR(number)
- 示例:
收起
sql
SELECT CEIL(3.1);
-- 输出: 4
SELECT FLOOR(3.9);
-- 输出: 3
日期和时间函数
1. DATE()
、TIME()
和 DATETIME()
- 说明:分别返回当前日期、当前时间和当前日期时间。
- 用法:
DATE('now')
TIME('now')
DATETIME('now')
- 示例:
收起
sql
SELECT DATE('now');
-- 输出当前日期,例如: 2025-02-20
SELECT TIME('now');
-- 输出当前时间,例如: 12:34:56
SELECT DATETIME('now');
-- 输出当前日期时间,例如: 2025-02-20 12:34:56
2. STRFTIME()
- 说明:根据指定的格式字符串格式化日期或时间值。
- 用法:
STRFTIME(format, timestamp [, modifier, ...])
- 示例:
收起
sql
SELECT STRFTIME('%Y-%m-%d', 'now');
-- 输出当前日期,格式为 YYYY-MM-DD
3. JULIANDAY()
- 说明:返回指定日期或时间的儒略日数。
- 用法:
JULIANDAY(timestamp)
- 示例:
收起
sql
SELECT JULIANDAY('2025-02-20');
-- 输出对应日期的儒略日数
聚合函数
1. SUM()
- 说明:计算指定列的总和。
- 用法:
SUM(column)
- 示例:假设有一个
sales
表,包含amount
列。
收起
sql
SELECT SUM(amount) FROM sales;
2. AVG()
- 说明:计算指定列的平均值。
- 用法:
AVG(column)
- 示例:
收起
sql
SELECT AVG(amount) FROM sales;
3. COUNT()
- 说明:返回指定列中的行数或非空值的数量。
- 用法:
COUNT(*)
:返回表中的总行数。COUNT(column)
:返回指定列中非空值的数量。
- 示例:
收起
sql
SELECT COUNT(*) FROM sales;
-- 返回 sales 表的总行数
SELECT COUNT(amount) FROM sales;
-- 返回 amount 列中非空值的数量
4. MAX()
和 MIN()
- 说明:
MAX()
返回指定列中的最大值,MIN()
返回指定列中的最小值。 - 用法:
MAX(column)
MIN(column)
- 示例:
收起
sql
SELECT MAX(amount) FROM sales;
-- 返回 amount 列的最大值
SELECT MIN(amount) FROM sales;
-- 返回 amount 列的最小值
条件函数
1. CASE
- 说明:根据条件执行不同的操作。
- 用法:
收起
sql
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE default_result
END
- 示例:假设有一个
grades
表,包含score
列。
收起
sql
SELECT
score,
CASE
WHEN score >= 90 THEN 'A'
WHEN score >= 80 THEN 'B'
WHEN score >= 70 THEN 'C'
WHEN score >= 60 THEN 'D'
ELSE 'F'
END AS grade
FROM grades;
其他函数
1. RANDOM()
- 说明:返回一个介于 -9223372036854775808 到 +9223372036854775807 之间的随机整数。
- 用法:
RANDOM()
- 示例:
收起
sql
SELECT RANDOM();
2. COALESCE()
- 说明:返回参数列表中的第一个非空值。
- 用法:
COALESCE(value1, value2, ...)
- 示例:
收起
sql
SELECT COALESCE(NULL, 'Hello', 'World');
-- 输出: Hello
以上只是 SQLite 中部分常见函数的介绍,SQLite 还有一些其他特性的函数,你可以参考 SQLite 官方文档获取更全面的信息。
套图传送门THE END