深入解析Python pymysql用法

一、安装和创建连接

1、pymysql是Python的一个第三方模块,我们需要先使用pip进行安装:

!pip install pymysql

2、安装完成后,我们需要使用pymysql连接MySQL数据库,连接的主要参数包括host、port、user、password、db等,示例代码如下:

import pymysql

# 创建连接
conn = pymysql.connect(host='localhost', port=3306, user='root', password='root', db='test')

3、连接创建成功后,可以使用cursor()方法创建游标对象,用于执行SQL语句:

cursor = conn.cursor()

二、基本操作

1、执行SQL语句

1)查询数据:使用execute()方法执行SQL语句,再使用fetchone()或fetchall()方法获取查询结果。

sql = "SELECT * FROM student"
cursor.execute(sql)
result = cursor.fetchall()

for row in result:
    print(row)

2)插入数据:使用execute()方法执行insert语句,再使用commit()方法提交事务。

sql = "INSERT INTO student (name, age) VALUES ('Tom', 20)"
cursor.execute(sql)
conn.commit()

3)更新数据:使用execute()方法执行update语句,再使用commit()方法提交事务。

sql = "UPDATE student SET age = 21 WHERE name = 'Tom'"
cursor.execute(sql)
conn.commit()

4)删除数据:使用execute()方法执行delete语句,再使用commit()方法提交事务。

sql = "DELETE FROM student WHERE name = 'Tom'"
cursor.execute(sql)
conn.commit()

2、批量操作

1)批量插入数据:使用executemany()方法批量执行insert语句,再使用commit()方法提交事务。

students = [('Tom', 20), ('Jerry', 21), ('Mike', 19)]
sql = "INSERT INTO student (name, age) VALUES (%s, %s)"
cursor.executemany(sql, students)
conn.commit()

2)批量更新数据:使用executemany()方法批量执行update语句,再使用commit()方法提交事务。

students = [('Tom', 21), ('Jerry', 22), ('Mike', 20)]
sql = "UPDATE student SET age = %s WHERE name = %s"
cursor.executemany(sql, students)
conn.commit()

3)批量删除数据:使用executemany()方法批量执行delete语句,再使用commit()方法提交事务。

names = ['Tom', 'Jerry', 'Mike']
sql = "DELETE FROM student WHERE name = %s"
cursor.executemany(sql, names)
conn.commit()

三、高级操作

1、事务处理

1)事务的基本操作:

try:
    cursor1 = conn.cursor()
    sql1 = "UPDATE student SET age = 20 WHERE name = 'Tom'"
    cursor1.execute(sql1)
    
    cursor2 = conn.cursor()
    sql2 = "UPDATE student SET age = 22 WHERE name = 'Jerry'"
    cursor2.execute(sql2)
    
    # 提交事务
    conn.commit()
except:
    # 回滚事务
    conn.rollback()

事务处理要点:

  • 多条SQL语句必须使用同一个连接。
  • 多个cursor对象必须保证在同一事务中执行。
  • 出错时需要回滚事务。

2、预处理SQL语句

使用预处理语句可以有效地防止SQL注入攻击,也可以提高性能。示例代码如下:

sql = "INSERT INTO student (name, age) VALUES (%s, %s)"
cursor.execute(sql, ('Tom', 20))
conn.commit()

3、获取自增ID

使用lastrowid属性可以获取最后一次插入操作产生的自增ID。

sql = "INSERT INTO student (name, age) VALUES ('Tom', 20)"
cursor.execute(sql)
conn.commit()

id = cursor.lastrowid
print(id)

4、获取字段信息

使用description属性可以获取查询结果的字段信息。

sql = "SELECT * FROM student"
cursor.execute(sql)

# 获取字段信息
desc = cursor.description
print([col[0] for col in desc])

四、关闭连接

执行完所有操作后,需要关闭游标和连接以释放资源。

cursor.close()
conn.close()

总结

本文对Python pymysql的用法进行了详细的阐述,并从安装创建连接、基本操作、高级操作等多个方面进行了讲解。在实际应用中,可以结合具体情况选择不同的操作方式和参数,以最大程度地提高效率和安全性。

原创文章,作者:FVMLU,如若转载,请注明出处:https://www.506064.com/n/332873.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
FVMLUFVMLU
上一篇 2025-01-27 13:34
下一篇 2025-01-27 13:34

相关推荐

  • 如何查看Anaconda中Python路径

    对Anaconda中Python路径即conda环境的查看进行详细的阐述。 一、使用命令行查看 1、在Windows系统中,可以使用命令提示符(cmd)或者Anaconda Pro…

    编程 2025-04-29
  • Python计算阳历日期对应周几

    本文介绍如何通过Python计算任意阳历日期对应周几。 一、获取日期 获取日期可以通过Python内置的模块datetime实现,示例代码如下: from datetime imp…

    编程 2025-04-29
  • Python列表中负数的个数

    Python列表是一个有序的集合,可以存储多个不同类型的元素。而负数是指小于0的整数。在Python列表中,我们想要找到负数的个数,可以通过以下几个方面进行实现。 一、使用循环遍历…

    编程 2025-04-29
  • Python中引入上一级目录中函数

    Python中经常需要调用其他文件夹中的模块或函数,其中一个常见的操作是引入上一级目录中的函数。在此,我们将从多个角度详细解释如何在Python中引入上一级目录的函数。 一、加入环…

    编程 2025-04-29
  • Python周杰伦代码用法介绍

    本文将从多个方面对Python周杰伦代码进行详细的阐述。 一、代码介绍 from urllib.request import urlopen from bs4 import Bea…

    编程 2025-04-29
  • 蝴蝶优化算法Python版

    蝴蝶优化算法是一种基于仿生学的优化算法,模仿自然界中的蝴蝶进行搜索。它可以应用于多个领域的优化问题,包括数学优化、工程问题、机器学习等。本文将从多个方面对蝴蝶优化算法Python版…

    编程 2025-04-29
  • Python程序需要编译才能执行

    Python 被广泛应用于数据分析、人工智能、科学计算等领域,它的灵活性和简单易学的性质使得越来越多的人喜欢使用 Python 进行编程。然而,在 Python 中程序执行的方式不…

    编程 2025-04-29
  • python强行终止程序快捷键

    本文将从多个方面对python强行终止程序快捷键进行详细阐述,并提供相应代码示例。 一、Ctrl+C快捷键 Ctrl+C快捷键是在终端中经常用来强行终止运行的程序。当你在终端中运行…

    编程 2025-04-29
  • Python清华镜像下载

    Python清华镜像是一个高质量的Python开发资源镜像站,提供了Python及其相关的开发工具、框架和文档的下载服务。本文将从以下几个方面对Python清华镜像下载进行详细的阐…

    编程 2025-04-29
  • Python字典去重复工具

    使用Python语言编写字典去重复工具,可帮助用户快速去重复。 一、字典去重复工具的需求 在使用Python编写程序时,我们经常需要处理数据文件,其中包含了大量的重复数据。为了方便…

    编程 2025-04-29

发表回复

登录后才能评论