SQLite 运算符(手把手讲解)
💡一则或许对你有用的小广告
欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论
- 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于
Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...
,点击查看项目介绍 ;- 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/ ;
截止目前, 星球 内专栏累计输出 82w+ 字,讲解图 3441+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 2900+ 小伙伴加入学习 ,欢迎点击围观
在数据库开发中,运算符(Operator)是构建查询逻辑的核心工具。无论是筛选数据、计算字段值,还是组合条件表达式,SQLite 运算符都扮演着不可或缺的角色。对于编程初学者而言,掌握这些运算符不仅能提升 SQL 编写效率,还能帮助理解数据库底层逻辑。本文将系统性地介绍 SQLite 中常见的运算符类型,通过实例代码和类比解释,帮助读者快速上手并灵活应用。
一、算术运算符:数据库中的“计算助手”
SQLite 的算术运算符(Arithmetic Operators)用于执行基本的数学运算,例如加减乘除和取模。它们常用于动态计算字段值或筛选满足特定数值条件的记录。
基础用法与示例
以下是 SQLite 支持的算术运算符及其功能:
运算符 | 描述 | 示例表达式 | 结果 |
---|---|---|---|
+ | 加法 | 5 + 3 | 8 |
- | 减法 | 10 - 4 | 6 |
* | 乘法 | 2 * 7 | 14 |
/ | 除法 | 20 / 5 | 4 |
% | 取模(求余数) | 15 % 4 | 3 |
实际案例:计算商品总价
假设有一个 products
表,包含 price
(单价)和 quantity
(数量)字段,我们可以用算术运算符计算每个商品的总价:
SELECT product_name, price * quantity AS total_price
FROM products;
类比解释:像计算器一样工作
算术运算符就像一个计算器,直接对字段或数值进行数学运算。例如,price * quantity
就像将单价和数量输入计算器,按下“×”键后得到的结果。
二、比较运算符:数据筛选的“过滤器”
比较运算符(Comparison Operators)用于比较两个值的大小或相等性,是 WHERE
子句中条件表达式的核心组成部分。通过这些运算符,可以精准筛选符合条件的数据。
常用比较运算符及其用法
运算符 | 描述 | 示例表达式 | 结果(布尔值) |
---|---|---|---|
= | 等于 | age = 25 | true |
<> | 不等于 | status <> 'A' | true |
!= | 不等于(与 <> 等价) | score != 90 | true |
> | 大于 | salary > 5000 | true |
< | 小于 | stock < 10 | true |
>= | 大于等于 | score >= 60 | true |
<= | 小于等于 | age <= 18 | true |
实际案例:筛选高收入用户
假设有一个 users
表,包含 income
(收入)字段,筛选收入超过 10000 的用户:
SELECT user_id, income
FROM users
WHERE income > 10000;
类比解释:筛选数据就像过安检
比较运算符如同机场安检的“门槛”:只有满足条件(如行李重量 < 20kg
)的旅客才能通过。
三、逻辑运算符:构建复杂条件的“逻辑门”
逻辑运算符(Logical Operators)允许开发者将多个条件组合成复杂的布尔表达式,常用于 WHERE
或 HAVING
子句中。
常用逻辑运算符与组合规则
运算符 | 描述 | 示例表达式 | 结果(布尔值) |
---|---|---|---|
AND | 逻辑与(两个条件都为真) | age > 18 AND salary >= 5000 | true |
OR | 逻辑或(至少一个条件为真) | status = 'active' OR is_vip = 1 | true |
NOT | 逻辑非(反转条件结果) | NOT is_deleted | true |
实际案例:筛选特定用户群体
假设需查找年龄在 25~35 岁且收入超过 8000 的用户:
SELECT *
FROM users
WHERE age BETWEEN 25 AND 35
AND income > 8000;
类比解释:逻辑运算符如同电路门
AND
相当于串联电路:所有条件必须满足才能通过。OR
相当于并联电路:只要有一个条件满足即可通过。NOT
相当于开关:反转当前条件状态。
四、位运算符:二进制世界的“魔法”
位运算符(Bitwise Operators)直接操作数据的二进制位,常用于需要高效处理二进制数据或位掩码的场景,例如权限管理或状态压缩。
常用位运算符及其功能
运算符 | 描述 | 示例表达式 | 结果(二进制) |
---|---|---|---|
& | 按位与 | 5 & 3 (二进制 101 & 011 ) | 1 (二进制 001 ) |
| | 按位或 | 6 | 3 (二进制 110 | 011 ) | 7 (二进制 111 ) |
^ | 按位异或 | 7 ^ 1 (二进制 111 ^ 001 ) | 6 (二进制 110 ) |
<< | 左移 | 3 << 1 | 6 (二进制 110 ) |
>> | 右移 | 8 >> 1 | 4 (二进制 100 ) |
实际案例:权限管理中的位掩码
假设一个用户权限字段 permissions
的二进制位表示不同权限:
- 第 0 位(1):读权限
- 第 1 位(2):写权限
- 第 2 位(4):删除权限
要检查用户是否同时拥有读和写权限:
SELECT *
FROM users
WHERE (permissions & 3) = 3;
-- 3 的二进制是 11,与 `permissions` 按位与后等于 3 表示两位均为 1
类比解释:位运算符如同拼图
每个二进制位像一个开关,位运算符通过组合这些开关(如 |
打开多个权限)或检查开关状态(如 &
验证权限组合),实现高效的数据操作。
五、字符串运算符:文本处理的“瑞士军刀”
字符串运算符(String Operators)主要用于操作文本数据,例如连接字符串或判断子串存在性。在 SQLite 中,||
是唯一支持的字符串连接运算符。
关键字符串运算符与示例
运算符 | 描述 | 示例表达式 | 结果 |
---|---|---|---|
|| | 字符串连接 | 'Hello' || 'World' | 'HelloWorld' |
实际案例:生成完整地址
假设有一个 customers
表,包含 street
、city
和 country
字段,可以拼接成完整地址:
SELECT first_name || ' ' || last_name AS full_name,
street || ', ' || city || ', ' || country AS full_address
FROM customers;
类比解释:字符串连接如同乐高积木
||
运算符像乐高积木,将多个文本块(字段或字符串)拼接成一个完整的“作品”。
六、特殊运算符:扩展 SQL 的灵活性
SQLite 还提供了一些特殊运算符,用于处理范围、NULL 值或模式匹配等场景。
常见特殊运算符详解
1. BETWEEN
:范围筛选
用于检查一个值是否在指定的两个值之间:
SELECT *
FROM employees
WHERE hire_date BETWEEN '2020-01-01' AND '2020-12-31';
2. IN
:多值匹配
检查一个值是否在给定的集合中:
SELECT product_id, name
FROM products
WHERE category IN ('electronics', 'books');
3. LIKE
:模式匹配
用于模糊查询,支持通配符 %
(匹配任意字符序列)和 _
(匹配单个字符):
SELECT *
FROM customers
WHERE email LIKE '%@gmail.com'; -- 查找 Gmail 用户
4. IS NULL
或 IS NOT NULL
:检查空值
SELECT *
FROM orders
WHERE shipping_address IS NULL; -- 筛选未填写地址的订单
类比解释:特殊运算符如同多用途工具
这些运算符像瑞士军刀中的不同工具,针对特定场景提供高效解决方案,例如 LIKE
相当于“文本搜索放大镜”。
结论:掌握 SQLite 运算符,解锁数据库的无限可能
SQLite 运算符是 SQL 开发的基石,无论是基础的算术运算、复杂的逻辑组合,还是高级的位操作,都能通过这些符号高效实现。本文通过案例和类比,系统性地讲解了各类运算符的使用场景和技巧。
对于初学者,建议从简单运算符(如 =
、>
、AND
)开始练习,逐步过渡到位运算或字符串操作;中级开发者则可结合实际项目,探索运算符的组合应用。记住,实践是掌握 SQL 运算符的最佳途径——尝试用不同运算符构建查询,观察结果变化,最终实现数据的精准操控。
SQLite 运算符不仅是语法符号,更是开发者与数据对话的桥梁。通过灵活运用这些工具,你将能够更自信地应对数据库开发中的各类挑战。