SQLite 介绍及使用
目录
一、基础简介
SQLite 是一款轻量级、文件型、零‑配置、嵌入式关系型数据库,由 C 语言编写。
区别于 MySQL、PostgreSQL 这类需要单独安装、启动服务、监听端口的数据库;
SQLite 本质就是一个磁盘上单独的 .db 文件,不需要数据库服务进程,直接读写本地文件。
通俗总结:单文件数据库,开箱即用,不需要安装服务。
核心特点
- 无服务端:没有后台进程,程序直接读写数据库文件
- 单文件存储:全部数据表、索引、视图存在一个后缀
.db文件,方便拷贝、备份、迁移 - 零配置:不用创建账号、开启端口、配置权限
- 跨平台:Windows、Linux、macOS、安卓、iOS 全部支持
- 支持标准 SQL:增删改查、事务、索引、外键、触发器
- 占用资源极低,适合嵌入式设备、本地软件、小型项目
二、常见适用场景
适合使用
- 移动端 APP 本地缓存(安卓、iOS 本地数据库默认就是 SQLite)
- Python 本地工具、爬虫程序、小型脚本存储数据
- Hexo、本地笔记软件、浏览器(Chrome/Firefox)历史记录、Cookie 底层数据库
- 单机桌面软件、小型工具、本地知识库
- 测试环境、小型网站低并发数据存储
不适合
- 高并发多人同时写入(没有并发服务,写操作会加锁阻塞)
- 大型网站、后端服务、上万 QPS 业务系统(选用 MySQL / PostgreSQL)
三、基础数据类型
SQLite 只有 5 种基础存储类型
NULL空值INTEGER整数REAL浮点数TEXT字符串文本BLOB二进制字节(图片、文件二进制)
特色:动态类型,字段声明 int 也可以存放字符串,不会强制类型约束
四、Python 使用 SQLite(内置库,无需额外安装)
python 标准库自带
sqlite3,直接导入即可,不用 pip 安装。
基础示例
import sqlite3
# 1.连接数据库,文件不存在则自动新建 test.db
conn = sqlite3.connect("test.db")
cursor = conn.cursor()
# 2.建表
cursor.execute('''
CREATE TABLE IF NOT EXISTS user(
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
age INTEGER
)
''')
# 3.插入单条数据
cursor.execute("INSERT INTO user(name,age) VALUES (?,?)", ("张三",22))
# 4.批量插入
data = [("李四",18),("王五",30)]
cursor.executemany("INSERT INTO user(name,age) VALUES (?,?)",data)
# 提交事务,sqlite修改数据必须commit保存
conn.commit()
# 5.查询
cursor.execute("SELECT * FROM user")
print(cursor.fetchall())
# 关闭连接
cursor.close()
conn.close()
五、常用 SQL 语句
-- 创建表
CREATE TABLE book(id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT);
-- 新增
INSERT INTO book(name) VALUES ('python入门');
-- 查询
SELECT * FROM book;
-- 更新
UPDATE book SET name='sqlite教程' WHERE id=1;
-- 删除
DELETE FROM book WHERE id=1;
-- 创建索引
CREATE INDEX idx_book_name ON book(name);
六、优缺点
优点
- 单文件,备份只需要复制
.db文件 - 无需安装、启动服务,Python 开箱即用
- 体积极小、占用内存低
- 跨平台兼容,几乎所有编程语言都支持
缺点
- 文件锁机制,并发写入性能差,多人同时写入会排队阻塞
- 没有用户账号、权限管理,依靠操作系统文件权限管控
- 不适合大型高并发线上业务
- 大数据量上千万条之后读写速度会明显下降
七、和 MySQL 简单对比
| 项目 | SQLite | MySQL |
|---|---|---|
| 运行方式 | 文件、无服务进程 | 独立数据库服务,监听端口 |
| 存储 | 单个 db 文件 | 多个数据文件 |
| 部署 | 零配置 | 需要安装、启动、配置账号 |
| 并发写入 | 弱,文件锁 | 支持高并发 |
| 适用场景 | 本地程序、移动端、脚本工具 | 网站后端、线上业务 |
八、日常开发小技巧
- 数据库文件不要放在项目缓存目录,备份好
.db文件 - 频繁查询的字段建立索引,提升查询速度
- 大量修改数据一定要使用事务
commit(),否则不会保存 - 爬虫、RAG 本地知识库非常适合使用 SQLite 存储向量元数据、网页数据
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。
文章标题:SQLite 介绍及使用
本文作者:伟生
发布时间:2026-08-15, 22:04:11
最后更新:2026-08-15, 22:11:35
原始链接:http://yoursite.com/2026/08/15/db_05_sqlite/版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。