Python中Pymysql库的常见用法和代码示例

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: `pymysql` 是一个用于连接 MySQL 数据库的 Python 库,支持 SQL 查询的执行和结果处理。通过 `pip install pymysql` 安装后,可使用 `connect()` 方法建立连接,`cursor()` 创建游标执行查询,包括数据的增删改查,并通过 `commit()` 和 `rollback()` 管理事务,最后需关闭游标和连接以释放资源。

Pymysql

关注B站可以观看更多实战教学视频:肆十二-的个人空间-肆十二-个人主页-哔哩哔哩视频 (bilibili.com)

pymysql是一个用于连接MySQL数据库的Python库,它允许你执行SQL查询并处理返回的结果。以下是pymysql库的一些常见用法和代码示例:

1. 安装pymysql

首先,你需要安装pymysql库。可以使用pip命令来安装:

bash复制代码

pip install pymysql

2. 连接到MySQL数据库

使用pymysql.connect()函数来建立与MySQL数据库的连接。

import pymysql  

# 创建连接  
connection = pymysql.connect(  
    host='localhost',  # 数据库服务器地址  
    user='your_username',  # 数据库用户名  
    password='your_password',  # 数据库密码  
    database='your_database',  # 数据库名  
    charset='utf8mb4'  # 字符集(兼容更多的文字)  
)

3. 创建游标对象

为了执行SQL查询,你需要创建一个游标对象。

# 创建一个游标对象 cursor  
cursor = connection.cursor()

4. 执行SQL查询

使用游标对象的execute()方法来执行SQL查询。

# 执行SQL查询语句  
sql = "SELECT * FROM your_table"  
try:  
    # 执行SQL语句  
    cursor.execute(sql)  
    # 获取所有记录列表  
    results = cursor.fetchall()  
    for row in results:  
        print(row)  # 打印每一行数据  
except Exception as e:  
    print(f"Error: unable to fetch data: {e}")

5. 插入数据

插入数据时,也要执行SQL语句,并在执行后提交事务以确保数据被保存。

# 插入单条数据  
sql = "INSERT INTO your_table (column1, column2) VALUES (%s, %s)"  
values = ("value1", "value2")  
try:  
    cursor.execute(sql, values)  
    # 提交到数据库执行  
    connection.commit()  
    print("Insert successful!")  
except Exception as e:  
    # 如果发生错误则回滚  
    connection.rollback()  
    print(f"Error: unable to insert data: {e}")

6. 更新和删除数据

更新和删除数据的操作类似于插入数据,只是SQL语句不同。

# 更新数据  
update_sql = "UPDATE your_table SET column1 = %s WHERE column2 = %s"  
update_values = ("new_value", "condition_value")  
try:  
    cursor.execute(update_sql, update_values)  
    connection.commit()  
    print("Update successful!")  
except Exception as e:  
    connection.rollback()  
    print(f"Error: unable to update data: {e}")  

# 删除数据  
delete_sql = "DELETE FROM your_table WHERE column1 = %s"  
delete_values = ("value_to_delete",)  
try:  
    cursor.execute(delete_sql, delete_values)  
    connection.commit()  
    print("Delete successful!")  
except Exception as e:  
    connection.rollback()  
    print(f"Error: unable to delete data: {e}")

7. 关闭连接

完成所有数据库操作后,别忘了关闭游标和连接。

# 关闭游标和连接  
cursor.close()  
connection.close()

注意事项:

  • 总是确保在处理数据库操作时使用try-except块来捕获任何潜在的异常。
  • 在执行插入、更新或删除操作后,使用connection.commit()提交事务。
  • 如果在执行过程中出现错误,使用connection.rollback()回滚事务。
  • 始终在程序结束时关闭游标和数据库连接,以释放资源。
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
4天前
|
测试技术 Python
探索Python中的装饰器:简化代码,增强功能
在Python的世界中,装饰器是那些能够为我们的代码增添魔力的小精灵。它们不仅让代码看起来更加优雅,还能在不改变原有函数定义的情况下,增加额外的功能。本文将通过生动的例子和易于理解的语言,带你领略装饰器的奥秘,从基础概念到实际应用,一起开启Python装饰器的奇妙旅程。
22 11
|
19天前
|
缓存 监控 测试技术
Python中的装饰器:功能扩展与代码复用的利器###
本文深入探讨了Python中装饰器的概念、实现机制及其在实际开发中的应用价值。通过生动的实例和详尽的解释,文章展示了装饰器如何增强函数功能、提升代码可读性和维护性,并鼓励读者在项目中灵活运用这一强大的语言特性。 ###
|
18天前
|
Python
探索Python中的装饰器:简化代码,提升效率
【10月更文挑战第39天】在编程的世界中,我们总是在寻找使代码更简洁、更高效的方法。Python的装饰器提供了一种强大的工具,能够让我们做到这一点。本文将深入探讨装饰器的基本概念,展示如何通过它们来增强函数的功能,同时保持代码的整洁性。我们将从基础开始,逐步深入到装饰器的高级用法,让你了解如何利用这一特性来优化你的Python代码。准备好让你的代码变得更加优雅和强大了吗?让我们开始吧!
22 1
|
19天前
|
存储 缓存 监控
掌握Python装饰器:提升代码复用性与可读性的利器
在本文中,我们将深入探讨Python装饰器的概念、工作原理以及如何有效地应用它们来增强代码的可读性和复用性。不同于传统的函数调用,装饰器提供了一种优雅的方式来修改或扩展函数的行为,而无需直接修改原始函数代码。通过实际示例和应用场景分析,本文旨在帮助读者理解装饰器的实用性,并鼓励在日常编程实践中灵活运用这一强大特性。
|
2月前
|
Python
pip批量安装Python库 requirement.txt 离线环境无互联网环境下pip安装Python库
pip批量安装Python库 requirement.txt 离线环境无互联网环境下pip安装Python库
134 3
|
6月前
|
开发工具 git Python
安装和使用`libnum`是一个用于数字理论函数的Python库
【6月更文挑战第19天】`libnum`是Python的数字理论函数库。安装可通过`git clone`,进入目录后运行`python setup.py install`,也可用`pip install libnum`。示例:使用`int_to_hex`将十进制数42转换为十六进制字符串'2a'。注意,信息可能已过时,应查最新文档以确保准确性。如遇问题,参考GitHub仓库或寻求社区帮助。
122 1
|
5月前
|
Python
确保你已经安装了`python-barcode`库。如果没有,可以通过pip来安装:
确保你已经安装了`python-barcode`库。如果没有,可以通过pip来安装:
|
Python
Anaconda虚拟环境安装Python库与Spyder
本文介绍在Anaconda中,为Python的虚拟环境安装第三方库与Spyder等配套软件的方法~
451 1
Anaconda虚拟环境安装Python库与Spyder
|
Linux Python
不可出外网的主机如何快速、方便、优雅的安装Python库?
不可出外网的主机如何快速、方便、优雅的安装Python库?
503 0
不可出外网的主机如何快速、方便、优雅的安装Python库?
|
Linux 计算机视觉 Python
Windows下使用Pycharm安装python GUI库Kivy教程
Windows下使用Pycharm安装python GUI库Kivy教程
755 0
Windows下使用Pycharm安装python GUI库Kivy教程