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

相关推荐
zzcufo10 分钟前
多邻国第五阶段第13部分
java·开发语言·数据库
37方寸18 分钟前
前端基础知识(JavaScript)
开发语言·前端·javascript
Whisper_Sy38 分钟前
Flutter for OpenHarmony移动数据使用监管助手App实战 - 应用列表实现
android·开发语言·javascript·flutter·php
小CC吃豆子44 分钟前
Python爬虫
开发语言·python
机器视觉知识推荐、就业指导1 小时前
Qt 6 所有 QML 类型(官方完整清单 · 原始索引版)
开发语言·qt
June bug1 小时前
(#字符串处理)字符串中第一个不重复的字母
python·leetcode·面试·职场和发展·跳槽
techdashen1 小时前
Rust OnceCell 深度解析:延迟初始化的优雅解决方案
开发语言·oracle·rust
少控科技1 小时前
QT新手日记033
开发语言·qt
lixzest2 小时前
PyTorch基础知识简述
人工智能·pytorch·python
飞Link2 小时前
深度学习里程碑:ResNet(残差网络)从理论到实战全解析
人工智能·python·深度学习