Python 什么';“使用”的区别是什么;c、 fetchall();而不是仅仅分配;c、 执行(选择…)到变量?
我很确定,在大多数情况下,它们在功能上是相同的,但我想知道,在某些情况下,它们是否是相同的,以及引擎盖下发生了什么使其如此 例如:Python 什么';“使用”的区别是什么;c、 fetchall();而不是仅仅分配;c、 执行(选择…)到变量?,python,sql,select,fetchall,Python,Sql,Select,Fetchall,我很确定,在大多数情况下,它们在功能上是相同的,但我想知道,在某些情况下,它们是否是相同的,以及引擎盖下发生了什么使其如此 例如: c.execute("""SELECT * FROM players WHERE team = ?;"""), (team_name,)) results = c.fetchall() player_list = [] for player in results: player_list.append(player) vs 没有定义执行返回的内容:它可以
c.execute("""SELECT * FROM players WHERE team = ?;"""), (team_name,))
results = c.fetchall()
player_list = []
for player in results:
player_list.append(player)
vs
没有定义执行返回的内容:它可以是生成器,可以是结果列表,也可以是表示结果的某个自定义对象,等等。它只承诺将进行数据库查询;没有定义结果的显示或可用方式
然而,fetch\u all
方法被定义为返回一个“序列序列”,这意味着您可以立即在内存中获得实际的实例化结果。尤其是,迭代结果不会触发延迟的数据库连接来执行查询或获取更多结果
这样做的一个结果是,一个实现可以将您的两种方法定义为等效的,但不需要这样做
results = c.execute("""SELECT * FROM players WHERE team = ?;"""), (team_name,))
player_list = []
for player in results:
player_list.append(player)