跳到主要内容

📒 sqlite 文件


本节介绍向 db 文件(sqlite)添加数据。

它可自动创建数据库文件、表、列,使用时无须事先创建数据库。

写入文件、备份文件、参数设置等功能与其它格式一致。

添加数据必须指定表格,可用set.table()add_data()方法的table参数指定。

如果指定的表格不存在,则自动创建。

注意

如果是新的 db 文件,第一次录入数据必须用dict格式,以便程序自动创建列。

✅️ 自动创建和匹配表头

使用dict传入数据时,可将数据自动匹配表头列。

如果是新的 db 文件,还没有表头,则自动创建表头。

from DrissionRecord import Recorder

r = Recorder('data.db')
r.set.table('表一')
r.add_data({'姓名': '张三', '年龄': 20})
r.record()

✅️ 接收列表格式数据

使用listtuple传入数据,会直接添加一行,无视表头。

from DrissionRecord import Recorder

r = Recorder('data.db')
r.set.table('表一')
r.add_data(('张三', 20))
r.record()

✅️ 接收多行数据

Recorder也可以接收二维数据,并逐行添加到指定表中。

from DrissionRecord import Recorder

r = Recorder(path='data.db')
r.add_data(({'name':'张三', 'age':20},
{'name':'李四', 'age':25}), table='user') # 接收多个dict
r.record()

✅️ run_sql()

此方法用于执行 sql 语句并返回结果,支持 db 格式文件。

参数名称类型默认值说明
sqlstr必填sql 语句
singleboolTrue是否只获取一个结果
commitboolFalse是否提交到数据库
返回类型说明
tuplesingleTrue时返回tuple
listsingleFalse时返回list
None没有结果时返回None
from DrissionRecord import Recorder

r = Recorder('tmp\\data.db')
r.set.table('user')
r.add_data({'姓名': '张三', '性别': '男'})
r.add_data({'姓名': '李四', '性别': '男'})
r.record()

result = r.run_sql('select * from user', single=True)
print(result) # ('张三', '男')
result = r.run_sql('select * from user', single=False)
print(result) # [('张三', '男'), ('李四', '男')]