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

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 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()回滚事务。
  • 始终在程序结束时关闭游标和数据库连接,以释放资源。
相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
22天前
|
XML JSON 数据库
Python的标准库
Python的标准库
162 77
|
3天前
|
Python
课程设计项目之基于Python实现围棋游戏代码
游戏进去默认为九路玩法,当然也可以选择十三路或是十九路玩法 使用pycharam打开项目,pip安装模块并引用,然后运行即可, 代码每行都有详细的注释,可以做课程设计或者毕业设计项目参考
47 33
|
4天前
|
JavaScript API C#
【Azure Developer】Python代码调用Graph API将外部用户添加到组,结果无效,也无错误信息
根据Graph API文档,在单个请求中将多个成员添加到组时,Python代码示例中的`members@odata.bind`被错误写为`members@odata_bind`,导致用户未成功添加。
30 10
|
23天前
|
XML JSON 数据库
Python的标准库
Python的标准库
47 11
|
23天前
|
数据可视化 Python
以下是一些常用的图表类型及其Python代码示例,使用Matplotlib和Seaborn库。
通过这些思维导图和分析说明表,您可以更直观地理解和选择适合的数据可视化图表类型,帮助更有效地展示和分析数据。
64 8
|
29天前
|
人工智能 数据可视化 数据挖掘
探索Python编程:从基础到高级
在这篇文章中,我们将一起深入探索Python编程的世界。无论你是初学者还是有经验的程序员,都可以从中获得新的知识和技能。我们将从Python的基础语法开始,然后逐步过渡到更复杂的主题,如面向对象编程、异常处理和模块使用。最后,我们将通过一些实际的代码示例,来展示如何应用这些知识解决实际问题。让我们一起开启Python编程的旅程吧!
|
28天前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
|
16天前
|
Unix Linux 程序员
[oeasy]python053_学编程为什么从hello_world_开始
视频介绍了“Hello World”程序的由来及其在编程中的重要性。从贝尔实验室诞生的Unix系统和C语言说起,讲述了“Hello World”作为经典示例的起源和流传过程。文章还探讨了C语言对其他编程语言的影响,以及它在系统编程中的地位。最后总结了“Hello World”、print、小括号和双引号等编程概念的来源。
102 80
|
2月前
|
存储 索引 Python
Python编程数据结构的深入理解
深入理解 Python 中的数据结构是提高编程能力的重要途径。通过合理选择和使用数据结构,可以提高程序的效率和质量
150 59
|
5天前
|
Python
[oeasy]python055_python编程_容易出现的问题_函数名的重新赋值_print_int
本文介绍了Python编程中容易出现的问题,特别是函数名、类名和模块名的重新赋值。通过具体示例展示了将内建函数(如`print`、`int`、`max`)或模块名(如`os`)重新赋值为其他类型后,会导致原有功能失效。例如,将`print`赋值为整数后,无法再用其输出内容;将`int`赋值为整数后,无法再进行类型转换。重新赋值后,这些名称失去了原有的功能,可能导致程序错误。总结指出,已有的函数名、类名和模块名不适合覆盖赋新值,否则会失去原有功能。如果需要使用类似的变量名,建议采用其他命名方式以避免冲突。
27 14