PyMySQL中cur.fetchall()和cur.fetchone()是用来从数据库中提取数据的两种方法,它们的用法有所不同。
cur.fetchall()
cur.fetchall()用于从数据库中提取所有行的数据,返回一个元组列表,其中每个元组代表一行数据,每个元组中的每个元素代表一列数据,如:
# 执行SQL语句
cur.execute("SELECT * FROM table")
# 从数据库中提取所有行的数据
rows = cur.fetchall()
# 打印每一行
for row in rows:
print(row)
上面的代码执行后,rows中就会存储所有行的数据,每一行的数据是一个元组,元组中的每一个元素是一列数据。
cur.fetchone()
cur.fetchone()用于从数据库中提取一行数据,返回一个元组,元组中的每一个元素代表一列数据,如:
# 执行SQL语句
cur.execute("SELECT * FROM table")
# 从数据库中提取一行数据
row = cur.fetchone()
# 打印每一列
for col in row:
print(col)
上面的代码执行后,row中就会存储一行数据,元组中的每一个元素是一列数据。如果要提取多行数据,需要使用循环,如:
# 执行SQL语句
cur.execute("SELECT * FROM table")
# 从数据库中提取所有行的数据
while True:
row = cur.fetchone()
if row == None:
break
# 打印每一列
for col in row:
print(col)
上面的代码执行后,row会一次提取一行数据,当提取到一行时,row的值会变为None,此时跳出循环。