如何使用python sqlite一次执行许多SELECT语句

时间:2016-06-01 02:22:16

标签: python sqlite

我有一些业务逻辑可以多次迭代,每次都需要执行简单的查询。每次我想将SELECT语句存储为字符串数组或类似的东西,然后在循环后立即执行所有语句,而不是调用db。这可能与python和sqlite一起使用吗?

2 个答案:

答案 0 :(得分:1)

我怀疑如果你找出一个“更大”的查询然后在检索信息后分解结果集,你会更好。

换句话说,不是三个调用数据库(Alice,Betty和Claire各一个),而是使用类似的东西:

select stuff from a_table
where person in ('Alice', 'Betty', 'Claire')

然后处理考虑person的实际数据。

显然,只有在你可以在执行基于人的操作的任何之前弄清楚查询的情况下,这种情况才有效,但根据你的问题,看起来就是这种情况。

答案 1 :(得分:1)

documentation说:

  

execute()只会执行一个SQL语句。如果您尝试使用它执行多个语句,则会引发警告。如果要通过一次调用执行多个SQL语句,请使用executescript()

但是,executescript()不允许您访问所有结果。 要获得多个查询结果,您必须自己进行循环:

def execute_many_selects(cursor, queries):
    return [cursor.execute(query).fetchall() for query in queries]

SQLite是一个嵌入式库,因此在进行多个数据库调用时不会产生客户端/服务器通信开销。