接上文Python开发从零开始-49.24-数据库操作,本文小编与大家分享 Python 数据库操作的相关知识。
(2)fetchone() 方法
游标对象的 fetchone() 方法用于从上次执行查询后返回的结果集中获取下一行数据。如果结果集中还有更多的数据行,fetchone() 将返回这些行中的下一行(元组形式)。如果没有更多的行,它将返回 None。
例如查询前文 COMPANY 表中的所有记录,并输出每行数据的完整代码示例如下:
import sqlite3conn = sqlite3.connect(r'C:\Users\Adminstrator\test.db')cursor = conn.cursor()try:cursor.execute(r"SELECT * FROM COMPANY")# cursor.fetchall() 用于从上次执行查询后返回的结果集中获取下一行数据。row = cursor.fetchone()while row is not None:print(row)row = cursor.fetchone()except Exception as e:print(e)finally:# 关闭游标cursor.close()# 关闭连接conn.close()
代码执行结果如下:
>>> %Run sqlite_6.py(1, 'Paul', 32, 'California', 20000.0, None)(3, 'Teddy', 23, 'Norway', 20000.0, None)(5, 'David', 27, 'Texas', 85000.0, None)(6, 'Kim', 22, 'South-Hall', 45000.0, None)(7, 'James', 24, 'Houston', 10000.0, None)>>>
fetchone() 方法的使用注意事项:
结果集的处理:每次调用 fetchone() 只会返回下一行数据。如果想遍历所有结果,应该在循环中重复调用 fetchone() 直到返回 None;
适用场景:fetchone() 是处理 SQLite查询 结果的一个非常有用的方法,它允许逐行处理查询结果,这对于处理大量数据或需要逐行处理数据的应用场景特别有用。
(3)fetchmany() 方法
游标对象的 fetchmany() 方法用于从查询结果中获取一定数量的行的列表,列表中每个元素都是一个行对象(元组形式)。可以使用 size 参数指定从结果集中一次性获取的行数。如果 size 大于表的总行数,则返回所有行;如果不指定 size 参数,默认情况下,它会返回查询结果集中的第一行。
例如查询前文 COMPANY 表中的前 3 条记录,并输出每行数据的完整代码示例如下:
import sqlite3conn = sqlite3.connect(r'C:\Users\Adminstrator\test.db')cursor = conn.cursor()try:cursor.execute(r"SELECT * FROM COMPANY")# cursor.fetchmany() 从查询结果中获取一定数量的行。rows = cursor.fetchmany(3)for row in rows:print(row)except Exception as e:print(e)finally:# 关闭游标cursor.close()# 关闭连接conn.close()
代码执行结果如下:
>>> %Run sqlite_7.py(1, 'Paul', 32, 'California', 20000.0, None)(3, 'Teddy', 23, 'Norway', 20000.0, None)(5, 'David', 27, 'Texas', 85000.0, None)>>>
fetchmany() 方法的使用注意事项:
使用 fetchmany() 时,应该考虑到可能的性能问题,特别是当请求的行数很大或者数据集非常大时。在这种情况下,一次性获取所有行可能会消耗大量内存。更好的做法是分批获取数据(例如,每次获取100或更少的行),这样可以更有效地管理内存;
使用 fetchmany() 时,可以使用 size 参数指定从结果集中一次性获取的行数。如果 size 大于表的总行数,则返回所有行;如果不指定 size 参数,默认情况下,它会返回查询结果集中的第一行。
如果在结果集末尾调用 fetchmany() 而没有指定大小,它将返回一个空列表,表示没有更多的数据可供获取;
由于 fetchmany(size) 是从上次游标位置开始,返回 size 指定数量的记录,以返回的结果不为空作为 while 循环的条件,多次运行 fetchmany(size) ,可以实现分页返回数据。这对于处理大量数据时,按需加载数据非常有用,特别是在 Web 应用中实现分页显示时。
受文章篇幅所限,下文将继续介绍 Python 数据库操作的相关知识。