Python确实有内置数据库支持,其标准库中的sqlite3模块提供了对SQLite数据库的完整封装。SQLite是一个轻量级的嵌入式关系型数据库,无需服务器配置,所有数据存储在单个文件中,非常适合小型应用、测试或数据分析场景。以下是sqlite3库的详细使用指南:
1. 导入库与连接数据库- 导入模块:直接通过import sqlite3引入,无需额外安装。import sqlite3 as sl
- 创建/连接数据库:指定数据库文件名(如my-test.db),若文件不存在会自动创建。con = sl.connect('my-test.db')
2. 创建表使用execute方法执行SQL语句创建表,支持定义字段类型、主键、自动递增等特性。
with con: con.execute(""" CREATE TABLE USER ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, name TEXT, age INTEGER ); """)3. 插入数据- 单条插入:使用占位符?防止SQL注入。sql = 'INSERT INTO USER (name, age) VALUES (?, ?)'con.execute(sql, ('Alice', 21))
- 批量插入:通过executemany高效插入多行数据。data = [(1, 'Alice', 21), (2, 'Bob', 22)]con.executemany('INSERT INTO USER VALUES (?, ?, ?)', data)
4. 查询数据- 基础查询:使用execute获取结果集,遍历输出。with con: cursor = con.execute("SELECT * FROM USER WHERE age <= 22") for row in cursor: print(row) # 输出如 (1, 'Alice', 21)
- 参数化查询:通过占位符动态传递条件。user_id = 1cursor = con.execute("SELECT * FROM USER WHERE id = ?", (user_id,))
5. 更新与删除数据- 更新记录:con.execute("UPDATE USER SET age = 23 WHERE name = 'Alice'")
- 删除记录:con.execute("DELETE FROM USER WHERE id = 3")
- 事务管理:使用with con上下文或手动commit()确保操作生效。
6. 使用SQL客户端工具(如DBeaver)- 下载数据库文件:将生成的.db文件导出到本地。
- 配置连接:
选择数据库类型为SQLite。
指定文件路径,即可通过图形界面管理数据。
7. 与Pandas无缝集成8. 注意事项- 无身份验证:SQLite设计轻量,默认不提供用户认证,需通过文件权限控制访问。
- 并发限制:多进程/线程同时写入时需加锁(如sqlite3.connect(check_same_thread=False))。
- 性能优化:对大量数据操作时,可启用事务(con.isolation_level = None后手动提交)。
总结Python的sqlite3库提供了完整的SQLite操作接口,结合Pandas可轻松实现数据存储与分析的闭环。其零配置、单文件存储的特性使其成为快速原型开发、测试或小型应用的理想选择。建议通过实践掌握表操作、事务管理及Pandas集成等核心功能。