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 数据库,但它足够强大,可以满足大多数数据库操作需求。

相关推荐
meilindehuzi_a4 小时前
从零理解并实现 RAG:用 LangChain.js 构建语义检索问答系统
开发语言·javascript·langchain
风流 少年5 小时前
Julia
开发语言·julia
江畔柳前堤5 小时前
GO01-Go 语言与主流编程语言深度对比
开发语言·人工智能·后端·微服务·云原生·golang·go
:-)6 小时前
算法-归并排序
java·开发语言·数据结构·算法·排序算法
GIS阵地7 小时前
QgsRasterDataProvider 完整详解(QGIS 3.40.13 C++)
开发语言·c++·qt·开源软件·qgis
yaoxin5211237 小时前
462. Java 反射 - 获取声明类与封闭类
java·开发语言·python
阿里嘎多学长8 小时前
2026-07-14 GitHub 热点项目精选
开发语言·程序员·github·代码托管
赵渝强老师8 小时前
【赵渝强老师】使用Oracle可传输的表空间迁移数据
数据库·oracle
中微极客8 小时前
解锁LLM开发全栈能力:Python + LangChain + RAG 工程实战指南
人工智能·python·langchain
hhzz8 小时前
Barbershop:基于GAN和分割Mask的图像合成技术——从理论到实战全解析
图像处理·人工智能·python·深度学习·计算机视觉