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

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

本文详细介绍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 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。