sqlite3,一个轻量级的 Python 库!

张开发
2026/4/20 10:35:55 15 分钟阅读
sqlite3,一个轻量级的 Python 库!
【sqlite3一个轻量级的 Python 库】在日常开发与生活中我们经常需要存储小型数据本地工具的配置信息、个人记账数据、桌面软件的用户记录、小程序缓存数据、爬虫临时数据等。这类场景不需要 MySQL、PostgreSQL 这类重型数据库无需安装服务、无需配置权限却需要稳定、标准、开箱即用的存储方案。sqlite3正是 Python 内置的、零配置的轻量级关系型数据库库它无需独立服务端直接以文件形式存储数据支持完整 SQL 语法稳定高效、体积小巧、跨平台兼容是 Python 开发本地工具、小型项目、数据持久化的最佳选择真正实现 “无需部署、开箱即用”完美满足日常生活与轻量开发的所有数据存储需求。一、库的简介实际生活中的核心作用sqlite3 是 Python内置自带的关系型数据库驱动直接对接 SQLite 嵌入式数据库核心优势是无服务、零配置、单文件、纯 Python 支持。在实际生活中它的用处无处不在存储本地记事本的文章内容、保存个人记账软件的收支数据、记录桌面工具的用户配置、存储爬虫爬取的小型数据集、作为 APP 和小程序的本地缓存。它不需要额外安装数据库服务不占用系统资源数据以.db 文件形式保存复制迁移极其方便同时支持标准 SQL 语句满足增删改查、事务、索引等全部核心功能是轻量数据持久化的最优解。二、安装库sqlite3 是Python 官方内置库无需手动安装安装 Python 后可直接导入使用这也是它最大的优势之一真正做到零成本使用。三、基本用法分 4 个核心步骤步骤 1导入库并连接数据库导入 sqlite3调用 connect () 连接数据库不存在则自动创建python运行# 导入内置sqlite3库 import sqlite3 # 连接数据库test.db不存在会自动创建是本地文件 conn sqlite3.connect(test.db)步骤 2创建游标对象游标是执行 SQL 语句的核心工具必须创建python运行# 创建游标 cursor conn.cursor()步骤 3执行 SQL 操作增删改查通过游标执行 SQL 语句完成数据操作python运行# 1. 创建表 cursor.execute(CREATE TABLE IF NOT EXISTS user (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)) # 2. 插入数据 cursor.execute(INSERT INTO user (name, age) VALUES (?, ?), (张三, 20)) # 3. 查询数据 cursor.execute(SELECT * FROM user) result cursor.fetchall() print(查询结果, result)步骤 4提交事务并关闭连接增删改必须提交最后关闭游标和连接释放资源python运行# 提交事务增删改必须执行 conn.commit() # 关闭游标与连接 cursor.close() conn.close()四、高级用法sqlite3 支持丰富的高级功能满足轻量开发的复杂需求事务管理支持提交、回滚保证数据安全稳定批量操作executemany () 批量插入 / 更新大幅提升效率条件查询支持 WHERE、ORDER BY、LIMIT、JOIN 等标准 SQL 语法索引优化创建索引加速大数据量查询速度上下文管理器with 语句自动管理连接无需手动关闭。高级用法示例批量插入 上下文管理器python运行import sqlite3 # 上下文管理器自动连接、提交、关闭 with sqlite3.connect(test.db) as conn: cursor conn.cursor() # 批量插入数据 users [(李四, 21), (王五, 22)] cursor.executemany(INSERT INTO user (name, age) VALUES (?, ?), users) # 查询所有数据 cursor.execute(SELECT * FROM user) print(cursor.fetchall())五、实际应用场景sqlite3 轻量、便捷、无配置覆盖日常生活与开发高频场景个人小工具记账本、备忘录、密码管理器、待办事项桌面应用本地配置存储、用户数据记录、历史记录爬虫数据小型爬虫数据存储无需部署数据库服务缓存数据程序临时缓存、配置文件、日志记录嵌入式项目物联网设备、小程序、小型后端服务的数据存储。深度案例代码个人记账管理系统完整可运行python运行import sqlite3 from datetime import datetime # 连接数据库 conn sqlite3.connect(bill.db) cursor conn.cursor() # 创建账单表 cursor.execute(CREATE TABLE IF NOT EXISTS bills (id INTEGER PRIMARY KEY AUTOINCREMENT, type TEXT, money REAL, remark TEXT, time TEXT)) # 添加账单 def add_bill(bill_type, money, remark): now datetime.now().strftime(%Y-%m-%d %H:%M:%S) cursor.execute(INSERT INTO bills (type, money, remark, time) VALUES (?, ?, ?, ?), (bill_type, money, remark, now)) conn.commit() print(账单添加成功) # 查询所有账单 def show_bills(): cursor.execute(SELECT * FROM bills ORDER BY time DESC) bills cursor.fetchall() for bill in bills: print(f{bill[4]} | {bill[1]} | {bill[2]}元 | {bill[3]}) # 统计总收支 def count_total(): cursor.execute(SELECT SUM(money) FROM bills WHERE money0) income cursor.fetchone()[0] or 0 cursor.execute(SELECT SUM(money) FROM bills WHERE money0) outcome cursor.fetchone()[0] or 0 print(f总收入{income}元总支出{outcome}元结余{incomeoutcome}元) # 测试功能 if __name__ __main__: add_bill(餐饮, -25, 午餐) add_bill(工资, 5000, 月薪) show_bills() count_total() conn.close()sqlite3 凭借无需部署、无需配置、轻量高效的特性成为 Python 轻量数据存储的首选方案它体积小、兼容性强、支持标准 SQL既适合新手学习数据库基础也能支撑日常工具和小型项目开发是每一位 Python 开发者都必须掌握的内置神器。无论是个人数据管理还是快速原型开发sqlite3 都能以最低成本实现最高效的数据持久化真正做到开箱即用、无处不在。看完这篇文章相信你已经掌握了 sqlite3 的核心用法它能轻松解决你本地数据存储的所有问题不用再为复杂的数据库配置烦恼。你平时最想做一个什么样的 Python 小工具呢不妨用 sqlite3 给它加上数据存储功能动手实践一下吧

更多文章