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

相关推荐
quikai19812 小时前
python练习第二组
开发语言·python
熊猫_豆豆2 小时前
python 用手势控制程序窗口文字大小
python·手势识别
AI视觉网奇2 小时前
Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr
开发语言·c++·算法
wjs20242 小时前
并查集快速合并
开发语言
free-elcmacom2 小时前
MATLAB与高等数学<1>一道曲面积分题的几何直观
开发语言·数学建模·matlab·高等数学
LaoZhangGong1232 小时前
深度学习uip中的“psock.c和psock.h”
c语言·开发语言
Tony Bai2 小时前
Go 安全新提案:runtime/secret 能否终结密钥残留的噩梦?
java·开发语言·jvm·安全·golang
pengzhuofan3 小时前
Java演进与与工程师成长
java·开发语言
比昨天多敲两行3 小时前
C++入门基础
开发语言·c++
测试秃头怪3 小时前
2026最新软件测试面试八股文(含答案+文档)
自动化测试·软件测试·python·功能测试·测试工具·面试·职场和发展