SQLite 数据库操作的老朋友——sqlite3
模块,挺适合用 Python 写些轻量级存储逻辑的。这个模块本身就是标准库,不用额外装包,接口也比较贴近平时的数据库操作习惯,像连接、执行 SQL、事务控制这些都有,而且还支持内存数据库,临时数据也方便。
Connection
对象的用法还蛮灵活的,不管你是用':memory:'
搞测试,还是读写磁盘文件,都挺顺手。它还能设置row_factory
,查数据时可以用列名访问字段,看着就清爽。
还有Cursor
对象,基本上你执行的每条 SQL 都要靠它,支持参数化查询,避免拼接 SQL 那种老毛病,安全性也提升不少。提交事务用commit()
,出错了就rollback()
,逻辑清晰。
类型转换这一块也挺好玩,除了 SQLite 原生的几种基本类型,Python 和 SQLite 之间还能注册适配器和转换器。比如你想把某个自定义类丢进数据库,写个函数注册一下就能搞定。
效率方面,像executemany()
这种批量插入操作,省时省力,跑起来速度也不错。加上with
语句自动管理连接,用起来更放心。
唯一要提醒一下的就是安全性,千万别图省事拼字符串写 SQL,改用?
占位的参数写法,省得哪天中招 SQL 注入。
如果你最近在搞轻量级项目或者写个临时数据脚本,这份《SQLite 数据库的 DB-API.pdf》还蛮值得一看。里面把常用的对象、方法、用法都讲得挺细,连例子也一并给了,看一眼就知道该怎么写。