当前位置:首页>python>Python开发从零开始-49.25-数据库操作

Python开发从零开始-49.25-数据库操作

  • 2026-10-11 05:39:00
Python开发从零开始-49.25-数据库操作

接上文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 数据库操作的相关知识。

最新文章

随机文章