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,此时跳出循环。