SQLite #

什么是 SQLite? #

SQLite 是一个轻量级的嵌入式关系数据库管理系统。它是世界上使用最广泛的数据库引擎,被应用于无数的应用程序、网站和设备中。SQLite 的特点是无需单独的服务器进程,整个数据库存储在单个磁盘文件中,非常适合嵌入式系统、移动应用和小型项目。

SQLite 的特点 #

特点 说明
零配置 无需安装、无需设置、无需管理
无服务器 不需要单独的服务器进程
单文件存储 整个数据库存储在一个文件中
跨平台 支持所有主流操作系统
零依赖 不依赖任何外部库
事务支持 完整的ACID事务支持
开源免费 公有领域,无版权限制

文档结构 #

本指南按以下结构组织,适合初学者按顺序学习:

1. 基础入门 #

主题 描述 文档链接
SQLite简介 SQLite的发展历史、特点、应用场景 sqlite-intro.md
安装与配置 Windows/Linux/macOS安装配置 sqlite-install.md
基础语法 注释、标识符、关键字、命名规范 sqlite-syntax.md
数据类型 动态类型系统、存储类、类型亲和性 data-types.md

2. 数据库操作 #

主题 描述 文档链接
数据库操作 创建、附加、分离数据库 database-operations.md
表操作 创建、修改、删除表,约束 table-operations.md

3. 数据操作 #

主题 描述 文档链接
数据插入 INSERT语句,批量插入,冲突处理 insert.md
数据更新 UPDATE语句,条件更新,UPSERT update.md
数据删除 DELETE语句,TRUNCATE模拟 delete.md
基础查询 SELECT语句,WHERE,ORDER BY,LIMIT select-basic.md

4. 高级查询 #

主题 描述 文档链接
高级查询 子查询,CTE,窗口函数,CASE表达式 advanced-query.md
多表查询 各种JOIN连接,自连接 join.md

5. 高级特性 #

主题 描述 文档链接
索引 索引类型,创建使用,优化方法 indexes.md
视图 视图创建,临时视图,应用场景 views.md
触发器 触发器创建,BEFORE/AFTER,应用场景 triggers.md
事务 ACID特性,BEGIN/COMMIT/ROLLBACK transactions.md

6. 管理与运维 #

主题 描述 文档链接
数据库备份 备份策略,.dump命令,在线备份 backup-restore.md
性能优化 查询优化,索引优化,PRAGMA设置 performance-tuning.md
命令行工具 sqlite3命令行使用,实用命令 cli-tools.md

7. SQLite特有特性 #

主题 描述 文档链接
动态类型系统 类型亲和性,存储类详解 dynamic-typing.md
JSON支持 JSON1扩展,JSON函数详解 json-functions.md
全文搜索 FTS3/FTS4/FTS5全文索引 fts.md
CTE递归查询 公用表表达式与递归查询 cte.md

学习路线 #

text
入门阶段
├── SQLite简介
├── 安装配置
├── 基础语法
└── 数据类型

基础阶段
├── 数据库操作
├── 表操作
├── 数据CRUD
└── 基础查询

进阶阶段
├── 高级查询
├── 多表查询
├── 索引优化
└── 事务处理

高级阶段
├── 触发器
├── 视图
├── 性能优化
└── 数据库管理

专家阶段
├── 动态类型系统
├── JSON处理
├── 全文搜索
└── CTE递归查询

适用人群 #

人群 建议
初学者 从基础入门开始,按顺序学习
移动开发者 重点学习数据操作和事务处理
嵌入式开发者 重点学习性能优化和资源管理
后端开发者 了解SQLite与其他数据库的差异
面试准备 全面复习,重点关注特有特性

学习建议 #

  1. 动手实践:安装SQLite,多写SQL语句
  2. 理解原理:了解SQLite的动态类型系统
  3. 项目实战:结合实际项目学习
  4. 性能优化:学习索引和查询优化
  5. 扩展功能:探索全文搜索等高级特性

SQLite vs 其他数据库 #

特性 SQLite MySQL PostgreSQL
服务器模式 嵌入式 客户端/服务器 客户端/服务器
配置要求 零配置 需要配置 需要配置
存储方式 单文件 多文件 多文件
并发写入 单写入者 多写入者 多写入者
适用场景 嵌入式、移动应用 Web应用 企业应用
部署难度 极低 中等 中等

应用场景 #

适合使用 SQLite 的场景 #

  • 移动应用程序(iOS、Android)
  • 桌面应用程序
  • 嵌入式设备
  • 小型网站和博客
  • 原型和测试环境
  • 应用程序配置存储
  • 本地缓存数据库

不适合使用 SQLite 的场景 #

  • 高并发写入场景
  • 大规模数据处理
  • 需要客户端/服务器架构
  • 需要用户权限管理
  • 需要存储过程

版本说明 #

本教程基于 SQLite 3.45 版本编写,同时兼顾历史版本的兼容性说明。

快速开始 #

sql
-- 创建数据库文件
sqlite3 myapp.db

-- 创建表
CREATE TABLE users (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL,
    email TEXT UNIQUE,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);

-- 插入数据
INSERT INTO users (name, email) VALUES ('John', 'john@example.com');

-- 查询数据
SELECT * FROM users;

开始你的SQLite学习之旅吧!

最后更新:2026-03-27