子查询
子查询是指在一个 SQL 语句中嵌套另一个查询,作为条件或数据源,提升查询灵活性。
基本用法
子查询可以放在 SELECT、WHERE、FROM 等语句中。
1. 在 WHERE 中使用子查询
查询年龄大于所有管理员年龄的用户:
SELECT * FROM users
WHERE age > (SELECT MAX(age) FROM admins);
2. 在 FROM 中使用子查询(派生表)
查询每个年龄的用户数量,并筛选数量大于 5 的年龄段:
SELECT age, user_count FROM (
SELECT age, COUNT(*) AS user_count
FROM users
GROUP BY age
) WHERE user_count > 5;
3. 在 SELECT 中使用子查询
查询每个用户最新订单时间:
SELECT name,
(SELECT MAX(order_date) FROM orders WHERE user_id = users.id) AS last_order
FROM users;
子查询的优势
- 实现复杂条件筛选
- 代替多步查询,简化操作
- 与 JOIN 结合提升查询效率
合理使用子查询,能够有效增强 SQLite 查询的表达力和功能。
相关内容
- 数据库加密 本章节介绍 SQLite 数据库加密的基本概念和常用方法,帮助用户保护数据库中的敏感数据,确保数据安全。
- 全文搜索(FTS) 本章节介绍 SQLite 的全文搜索(FTS)功能,讲解如何创建全文搜索虚拟表和执行高效的文本检索,适用于搜索引擎和文本分析场景。
- 触发器 本章节介绍 SQLite 中触发器的概念与使用方法,讲解如何定义自动执行的数据库操作以保证数据完整性和实现业务逻辑。
- 自定义函数 本章节介绍如何在 SQLite 中创建和使用自定义函数,扩展 SQLite 的功能以满足特定业务需求。
- 命令行基本命令 本章节介绍 SQLite 命令行工具的基本命令,帮助用户高效管理和操作 SQLite 数据库。
- 创建/打开数据库 本章节介绍如何在 SQLite 中创建或打开数据库文件,帮助用户快速开始数据库操作。