SQLite 运算符详解及应用实例(三)
- 数据库
- 7天前
- 5热度
- 0评论
SQLite 是一款轻量级的关系型数据库管理系统,广泛应用于嵌入式系统、移动应用和桌面应用中。本文将详细介绍 SQLite 中的各类运算符,包括算术运算符、比较运算符、逻辑运算符和位运算符,并通过实际示例帮助你更好地理解和应用这些运算符。
什么是 SQLite 运算符?
在 SQLite 中,运算符是一种特殊的保留字或字符,主要用于在 SQL 语句的 WHERE 子句中执行特定的操作,如算术计算、比较和逻辑判断。运算符可以帮助你在查询中指定条件,并将多个条件组合在一起,从而实现复杂的数据筛选和处理。
SQLite 支持以下几类运算符:
- 算术运算符:用于执行基本的数学运算。
- 比较运算符:用于比较两个值之间的关系。
- 逻辑运算符:用于组合多个条件。
- 位运算符:用于执行位级别的操作。
SQLite 算术运算符
算术运算符用于执行基本的数学运算,如加法、减法、乘法、除法和取模。假设我们有两个变量 a 和 b,其中 a = 10,b = 20,以下是常见的算术运算符及其用法:
| 运算符 | 描述 | 示例 |
|---|---|---|
| + | 加法 - 将两个操作数相加 | a + b 结果为 30 |
| - | 减法 - 左操作数减去右操作数 | a - b 结果为 -10 |
| * | 乘法 - 将两个操作数相乘 | a * b 结果为 200 |
| / | 除法 - 左操作数除以右操作数 | b / a 结果为 2 |
| % | 取模 - 左操作数除以右操作数的余数 | b % a 结果为 0 |
实例
以下是一些使用 SQLite 算术运算符的简单示例:
sqlite> .mode line
sqlite> SELECT 10 + 20;
10 + 20 = 30
sqlite> SELECT 10 - 20;
10 - 20 = -10
sqlite> SELECT 10 * 20;
10 * 20 = 200
sqlite> SELECT 10 / 5;
10 / 5 = 2
sqlite> SELECT 12 % 5;
12 % 5 = 2SQLite 比较运算符
比较运算符用于比较两个值之间的关系,返回的结果是一个布尔值(真或假)。假设我们有两个变量 a 和 b,其中 a = 10,b = 20,以下是常见的比较运算符及其用法:
| 运算符 | 描述 | 示例 |
|---|---|---|
| == | 检查两个操作数的值是否相等,如果相等则条件为真 | (a == b) 结果为假 |
| = | 检查两个操作数的值是否相等,如果相等则条件为真 | (a = b) 结果为假 |
| != | 检查两个操作数的值是否不相等,如果不相等则条件为真 | (a != b) 结果为真 |
| <> | 检查两个操作数的值是否不相等,如果不相等则条件为真 | (a <> b) 结果为真 |
| > | 检查左操作数的值是否大于右操作数的值,如果是则条件为真 | (a > b) 结果为假 |
| < | 检查左操作数的值是否小于右操作数的值,如果是则条件为真 | (a < b) 结果为真 |
| >= | 检查左操作数的值是否大于等于右操作数的值,如果是则条件为真 | (a >= b) 结果为假 |
| <= | 检查左操作数的值是否小于等于右操作数的值,如果是则条件为真 | (a <= b) 结果为真 |
| !< | 检查左操作数的值是否不小于右操作数的值,如果是则条件为真 | (a !< b) 结果为假 |
| !> | 检查左操作数的值是否不大于右操作数的值,如果是则条件为真 | (a !> b) 结果为真 |
实例
假设有一个名为 COMPANY 的表,其记录如下:
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
1 Paul 32 California 20000.0
2 Allen 25 Texas 15000.0
3 Teddy 23 Norway 20000.0
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
6 Kim 22 South-Hall 45000.0
7 James 24 Houston 10000.0以下是一些使用 SQLite 比较运算符的示例:
-- 列出薪水大于 50,000.00 的所有记录
sqlite> SELECT * FROM COMPANY WHERE SALARY > 50000;
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
-- 列出薪水等于 20,000.00 的所有记录
sqlite> SELECT * FROM COMPANY WHERE SALARY = 20000;
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
1 Paul 32 California 20000.0
3 Teddy 23 Norway 20000.0
-- 列出薪水不等于 20,000.00 的所有记录
sqlite> SELECT * FROM COMPANY WHERE SALARY != 20000;
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
2 Allen 25 Texas 15000.0
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
6 Kim 22 South-Hall 45000.0
7 James 24 Houston 10000.0
-- 列出薪水大于等于 65,000.00 的所有记录
sqlite> SELECT * FROM COMPANY WHERE SALARY >= 65000;
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0SQLite 逻辑运算符
逻辑运算符用于组合多个条件,返回的结果是一个布尔值(真或假)。以下是 SQLite 中常见的逻辑运算符及其用法:
| 运算符 | 描述 | |
|---|---|---|
| AND | 用于在 WHERE 子句中组合多个条件,所有条件都为真时结果为真 | |
| BETWEEN | 用于在给定的最小值和最大值范围内查找值 | |
| EXISTS | 用于检查指定表中是否存在满足一定条件的行 | |
| IN | 用于将某个值与一系列指定的值进行比较 | |
| NOT IN | 用于将某个值与不在一系列指定的值进行比较 | |
| LIKE | 用于将某个值与使用通配符的相似值进行比较 | |
| GLOB | 用于将某个值与使用通配符的相似值进行比较,大小写敏感 | |
| NOT | 用于否定其他逻辑运算符的结果 | |
| OR | 用于在 WHERE 子句中组合多个条件,任意一个条件为真时结果为真 | |
| IS NULL | 用于将某个值与 NULL 进行比较 | |
| IS | 用于将某个值与另一个值进行比较,类似于 = | |
| IS NOT | 用于将某个值与另一个值进行比较,类似于 != | |
| 用于连接两个不同的字符串,生成一个新的字符串 | ||
| UNIQUE | 用于确保指定表中的每一行都是唯一的 |
实例
假设有一个名为 COMPANY 的表,其记录如下:
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
1 Paul 32 California 20000.0
2 Allen 25 Texas 15000.0
3 Teddy 23 Norway 20000.0
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
6 Kim 22 South-Hall 45000.0
7 James 24 Houston 10000.0以下是一些使用 SQLite 逻辑运算符的示例:
-- 列出年龄大于等于 25 且薪水大于等于 65,000.00 的所有记录
sqlite> SELECT * FROM COMPANY WHERE AGE >= 25 AND SALARY >= 65000;
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
-- 列出年龄大于等于 25 或薪水大于等于 65,000.00 的所有记录
sqlite> SELECT * FROM COMPANY WHERE AGE >= 25 OR SALARY >= 65000;
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
1 Paul 32 California 20000.0
2 Allen 25 Texas 15000.0
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
-- 列出年龄不为 NULL 的所有记录
sqlite> SELECT * FROM COMPANY WHERE AGE IS NOT NULL;
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
1 Paul 32 California 20000.0
2 Allen 25 Texas 15000.0
3 Teddy 23 Norway 20000.0
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
6 Kim 22 South-Hall 45000.0
7 James 24 Houston 10000.0
-- 列出名字以 'Ki' 开始的所有记录
sqlite> SELECT * FROM COMPANY WHERE NAME LIKE 'Ki%';
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
6 Kim 22 South-Hall 45000.0
-- 列出名字以 'Ki' 开始的所有记录(大小写敏感)
sqlite> SELECT * FROM COMPANY WHERE NAME GLOB 'Ki*';
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
6 Kim 22 South-Hall 45000.0
-- 列出年龄为 25 或 27 的所有记录
sqlite> SELECT * FROM COMPANY WHERE AGE IN (25, 27);
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
2 Allen 25 Texas 15000.0
4 Mark 25 Rich-Mond 65000.0
5 David 27 Texas 85000.0
-- 列出年龄既不是 25 也不是 27 的所有记录
sqlite> SELECT * FROM COMPANY WHERE AGE NOT IN (25, 27);
ID NAME AGE ADDRESS SALARY
---------- ---------- ---------- ---------- ----------
1 Paul 32 California 20000.0
3 Teddy 23 Norway 20000.0
6 Kim 22 South-Hall 45000.0
7 James 24 Houston 10000.0总结
通过本文,我们详细介绍了 SQLite 中的算术运算符、比较运算符、逻辑运算符和位运算符,并通过实际示例展示了它们的应用场景。掌握这些运算符不仅有助于编写更高效的 SQL 查询,还能让你在数据处理和分析中更加得心应手。希望本文能对你在 SQLite 的学习和应用中有所帮助。