python cursor游标_python 使用sqlite需要使用游标cursor?

python 使用sqlite需要使用游标cursor?

在大多数情况下,很多在线文档示例中都会使用游标,为什么需要游标(cursor)管理?connection = sqlite3.connect(':memory:')

cursor = connection.cursor()

# Do something with cursor

该写法是把sqlite存储内存中使用。

但是在大多数情况下,您根本不需要游标,并且可以直接使用该connection对象(在文档结尾处提到了该对象)。

比如execute和操作executemany可以直接在连接上调用,调用成功后并返回一个游标cursor。如下图示例:import sqlite3

connection = sqlite3(':memory:')

# Create a table

connection.execute('CREATE TABLE events(ts, msg)')

# Insert values

connection.executemany(

'INSERT INTO events VALUES (?,?)',

[

(1, 'foo'),

(2, 'bar'),

(3, 'baz')

]

)

# Print inserted rows

for row in connection.execute('SELECT * FROM events'):

print(row)

游标(cursor)可以迭代

你可能会经常看得到一些示例,使用select查询结果中使用fetchone或者fetchall。但是我发现,使用结果最自然的方法是直接在游标上迭代。for row in connection.execute('SELECT * FROM events'):

print(row)

这样,你就可以在得到足够的结果后立即停止,而不会浪费资源。当然,如果事先知道需要多少结果,可以使用limit sql语句,但是Python生成器非常方便,可以将数据生成与数据消耗分离开来。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值