Python数据分析工具(四):pymysql的用法

pymysql 是一个用于连接 MySQL 数据库的 Python 库 。它提供了一个简单的方式来执行 SQL 语句、处理查询结果以及管理数据库连接。下面将介绍如何使用 pymysql 来连接 MySQL 数据库 、执行 SQL 语句以及处理结果。

安装 pymysql

首先,你需要确保已经安装了 pymysql。你可以通过 pip 来安装它:

bash 复制代码
pip install pymysql

连接数据库

使用 pymysql.connect() 方法来连接数据库。你需要提供数据库的地址(通常是主机名和端口号)、用户名、密码以及数据库名。

bash 复制代码
import pymysql  
  
# 连接数据库  
conn = pymysql.connect(host='数据库地址',  
                       user='用户名',  
                       password='密码',  
                       database='数据库名',  
                       charset='utf8mb4',  # 确保可以正确处理中文等字符  
                       cursorclass=pymysql.cursors.DictCursor)  # 返回字典类型的结果  
  
# 创建一个游标对象  
cursor = conn.cursor()

执行 SQL 语句

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

查询数据

bash 复制代码
# 执行查询  
cursor.execute("SELECT * FROM 表名")  
  
# 获取所有查询结果  
results = cursor.fetchall()  
  
for row in results:  
    print(row)  # 如果你在连接时使用了 DictCursor,这里将是字典类型

插入数据

bash 复制代码
# 插入数据  
sql = "INSERT INTO 表名 (列1, 列2) VALUES (%s, %s)"  
cursor.execute(sql, ('值1', '值2'))  
  
# 提交事务  

conn.commit()

更新和删除数据

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

bash 复制代码
# 更新数据  
sql = "UPDATE 表名 SET 列1 = %s WHERE 列2 = %s"  
cursor.execute(sql, ('新值', '条件值'))  
conn.commit()  
  
# 删除数据  
sql = "DELETE FROM 表名 WHERE 列名 = %s"  
cursor.execute(sql, ('条件值',))  
conn.commit()

关闭连接

完成数据库操作后,不要忘记关闭游标和连接。

bash 复制代码
# 关闭游标  
cursor.close()  
  
# 关闭连接  
conn.close()

注意事项

确保你拥有访问数据库的适当权限。

在处理敏感信息(如数据库密码)时,请确保遵守最佳安全实践。

使用参数化查询(如上例所示)来防止 SQL 注入攻击。

在生产环境中,考虑使用连接池等高级功能以提高性能和可维护性。

确保你的 MySQL 服务器配置允许从你的应用程序所在的服务器进行连接。

pymysql 提供了一个相对简单的接口来操作 MySQL 数据库,但它足够强大,可以满足大多数数据库操作需求。

相关推荐
white-persist14 分钟前
MCP协议深度解析:AI时代的通用连接器
网络·人工智能·windows·爬虫·python·自动化
纵横八荒29 分钟前
Java基础加强13-集合框架、Stream流
java·开发语言
codists44 分钟前
2025年9月文章一览
python
语落心生1 小时前
FastDeploy SD & Flux 扩散模型边缘端轻量化推理部署实现
python
欣然~1 小时前
百度地图收藏地址提取与格式转换工具 说明文档
java·开发语言·dubbo
java1234_小锋1 小时前
TensorFlow2 Python深度学习 - TensorFlow2框架入门 - 立即执行模式(Eager Execution)
python·深度学习·tensorflow·tensorflow2
William_cl1 小时前
C# MVC 修复DataTable时间排序以及中英文系统的时间筛选问题
开发语言·c#·mvc
running thunderbolt1 小时前
项目---网络通信组件JsonRpc
linux·服务器·c语言·开发语言·网络·c++·性能优化
王大傻09281 小时前
numpy -- 算术函数 reciprocal() 和 power() 简介
python·numpy
养生技术人1 小时前
Oracle OCP认证考试题目详解082系列第48题
运维·数据库·sql·oracle·database·开闭原则·ocp