Python pymysql库实现批量插入、查询与更新的完整指南

晚来风
晚来风
发布时间:2026-10-14 | 4人浏览过
原创

本文详细介绍Python中pymysql库的核心用法,涵盖连接MySQL数据库、批量插入数据、执行查询以及更新记录等关键操作。通过具体代码示例,展示如何高效处理数据库交互,包括事务提交与异常回滚机制,帮助开发者快速掌握pymysql在实战中的应用技巧。

pymysql批量插入数据实现

在Python中利用pymysql进行数据库操作时,批量插入是一项常见且高效的功能。首先需要建立与MySQL数据库的连接,指定主机地址、端口、用户名、密码、数据库名及字符集。随后创建游标对象,构造包含占位符的INSERT语句。通过调用cursor.executemany()方法,可以将包含多组数据的列表一次性插入数据库,从而显著提升插入效率。操作完成后,需提交事务以保存更改,关闭游标,并打印受影响的行数。若过程中发生异常,则执行回滚操作并输出错误信息。


import pymysql
 
 
def insert_to_mysql(to_db_list):
  mysql_db = pymysql.connect(host="HOST_IP", port=3306, user="username", password="password",
                database="db", charset="utf8")
  cursor = mysql_db.cursor()
  sql = "INSERT INTO `your_db`.`your_table`(`colum1`, `colum2`, `colum3`) VALUES (%s,%s,%s)"
 
  try:
    # cursor.execute()
    cursor.executemany(sql, to_db_list) # 批量插入
     
    effect_rows = cursor.rowcount
     
    mysql_db.commit()
    cursor.close()
    print('数据库添加成功,插入 {}条数据'.format(effect_rows))
    return effect_rows
  except Exception as e:
    mysql_db.rollback()
    print('数据库执行失败')
    print(e)
    return 0
 
my_list = []
my_list.append(('v1', 'v2', 'v3'))
 
cnt = insert_to_mysql(my_list)

pymysql执行数据查询

数据查询是数据库交互的另一核心环节。通过pymysql获取数据时,同样需要创建游标并执行SELECT语句。执行查询后,使用cursor.fetchall()方法可以获取所有匹配的记录,返回结果通常为元组列表。开发者可遍历该列表,根据索引提取特定字段(如ID和名称)进行后续处理或展示。这种方式适用于需要一次性获取大量数据的场景,确保数据完整返回。


def get_id_name():
  cursor = mysql_db.cursor()
  sql = "select id, name from `your_db`.`table`"
  cursor.execute(sql)
  res = cursor.fetchall()
 
  # print(res)
  return res
 
 
my_list = get_id_name()
 
for index in range(len(my_list)):
  print(my_list[index][0]) # id
  print(my_list[index][1]) # name

pymysql批量更新记录

当需要修改现有数据时,可使用UPDATE语句结合pymysql实现。构建包含SET和WHERE子句的SQL语句,指定要更新的列及更新条件(如ID)。与批量插入类似,若需更新多条记录,可使用cursor.executemany()配合包含更新值和目标ID的列表。执行后提交事务,若出现异常则回滚并记录错误。此方法适用于需要批量更新特定字段值的业务场景,确保数据一致性与操作原子性。


def update_by_id(update_list):
  """根据ID更新col1, col2, col3
  list 依次为 col1, col2, col3, id
 
  :param update_list:
  :return:
  """
 
  cursor = mysql_db.cursor()
  sql = "UPDATE `your_db`.`table` SET col1=(%s),col2=(%s),col3=(%s) WHERE id=(%s)"
 
  try:
    # cursor.execute()
    cursor.executemany(sql, update_list) # 批量插入
    mysql_db.commit()
    cursor.close()
    print('数据库更新成功')
  except Exception as e:
    mysql_db.rollback()
    print('数据库更新失败')
    print(e)
 
my_list = []
my_list.append(('v1', 'v2', 'v3', 'id'))
update_by_id(my_list)

以上即为Python pymysql库在批量插入、查询及更新方面的常用操作详解。这些基础用法涵盖了数据库交互的主要场景,掌握它们有助于提升开发效率。如需了解更多关于pymysql的高级特性或最佳实践,建议参考官方文档或本站其他相关技术文章。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表