课程 在 SQLite 技能树

SQLite 中级到高级

在本课程中,深入研究高级 SQLite 技术。掌握约束、索引、连接、子查询、事务、触发器、视图、全文搜索、JSON、备份、PRAGMA 调优、公共表表达式 (CTE) 、窗口函数等等!

数据库SQLite

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

通过 17 个引导式实验扩展 SQLite 技能,涵盖复杂查询、完整性规则、自动化、专用搜索、分析、备份、调优和维护。每个实验都使用小型本地数据库,让你执行相应 SQL 或 CLI 命令,并查看结构、数据行、查询计划或数据库状态的变化。

课程涵盖广泛的中高级主题,但仍采用分步学习形式。你将从约束和索引逐步学习连接、子查询、事务、触发器、视图、FTS5、CTE、窗口函数和运维命令,而无需设计一个大型完整应用。

你将学到什么

  • 使用外键、CHECK 约束、复合键和 ON CONFLICT 操作维护数据完整性
  • 创建和删除索引,查看 EXPLAIN QUERY PLAN,重建索引,运行 ANALYZE,并通过 VACUUM 回收空间
  • 使用内连接、左连接、多表连接、聚合、GROUP BY、HAVING 和相关子查询组合与汇总数据
  • 使用 BEGIN、COMMIT、ROLLBACK、保存点和拒绝无效余额的约束控制修改
  • 通过触发器自动生成审计记录,并构建简单、连接、聚合及由触发器支持更新的视图
  • 创建 FTS5 虚拟表,并使用 MATCH、前缀、指定列和布尔全文搜索
  • 将 JSON 存为文本,并通过自定义 Python json_extract SQL 函数完成提取、过滤和更新
  • 导出与恢复 SQL dump,配置 PRAGMA,使用临时表,编写简单与递归 CTE,并通过窗口函数计算排名和累计值

本课程适合谁

本课程适合已经会创建 SQLite 数据库与表,并能编写基础 SELECT、INSERT、UPDATE 和 DELETE 的开发者、分析人员及数据库学习者。如果你想在大型项目之前通过引导实践接触多种 SQLite 特性,本课程会很合适。

前置要求: 建议具备 SQLite CLI 和 SQL 基础,包括建表、主键、简单过滤和 CRUD。了解基本 Python 有助于完成 JSON 实验,但课程大部分内容不需要 Python。

学习环境: 全部 17 个入门级引导实验都在 Ubuntu 22.04 桌面 VM 中运行,主要使用 sqlite3 CLI。课程包含 84 个任务步骤和 101 个自动检查;JSON 实验还会使用标准 sqlite3 与 json 模块创建并运行 Python 脚本。

常见问题

课程实际有多高级?

主题超出基础 SQL,包含递归 CTE、窗口函数、FTS5、触发器和查询计划。不过 17 个实验全部标为入门级,并在小型示例数据库上提供分步命令,因此重点是引导式功能练习,而非独立数据库工程。

JSON 实验使用 SQLite 原生 JSON 函数吗?

不使用。实验将 JSON 存为文本,定义一个名为 json_extract 的 Python 函数,并把它注册到 Python SQLite 连接中。这不同于练习 SQLite 内置 JSON 运算符或 JSON 函数。

课程采用什么备份方式?

备份实验使用 CLI .dump 命令创建文本 SQL dump,并将该 SQL 输入新数据库进行恢复。它不涵盖在线备份 API、二进制文件安全复制、定时备份或时间点恢复。

学完后可以调优生产数据库吗?

课程会介绍索引、查询计划、日志模式、外键检查、缓存大小、完整性检查、ANALYZE 和 VACUUM,但不会对真实负载做基准测试,也不涵盖并发写入、应用连接管理、故障测试或生产监控。

教师

labby
Labby
Labby is the LabEx teacher.

为您推荐

no data