Python 操作 MySQL
【摘要】 Python 操作 MySQL 1. 介绍Python 提供了多种库来操作 MySQL 数据库,最常用的是 mysql-connector-python 和 PyMySQL。通过这些库,可以连接 MySQL 数据库,执行 SQL 查询、插入、更新和删除操作。 2. 应用使用场景Web 开发:如 Django、Flask 等框架与 MySQL 数据库交互。数据分析:从 MySQL 中提取数据...
Python 操作 MySQL
1. 介绍
Python 提供了多种库来操作 MySQL 数据库,最常用的是 mysql-connector-python
和 PyMySQL
。通过这些库,可以连接 MySQL 数据库,执行 SQL 查询、插入、更新和删除操作。
2. 应用使用场景
- Web 开发:如 Django、Flask 等框架与 MySQL 数据库交互。
- 数据分析:从 MySQL 中提取数据进行分析。
- 自动化脚本:定时从 MySQL 中读取或写入数据。
- 数据迁移:将数据从一个数据库迁移到另一个数据库。
3. 不同场景下的详细代码实现
场景 1:连接 MySQL 并查询数据
功能:连接 MySQL 数据库,执行查询并输出结果。
安装依赖:
pip install mysql-connector-python
代码实现:
import mysql.connector
# 连接数据库
def connect_db():
return mysql.connector.connect(
host="localhost",
user="root",
password="password",
database="testdb"
)
# 查询数据
def query_data():
conn = connect_db()
cursor = conn.cursor()
cursor.execute("SELECT * FROM users")
result = cursor.fetchall()
for row in result:
print(row)
cursor.close()
conn.close()
if __name__ == "__main__":
query_data()
运行效果:
(1, 'Alice', 'alice@example.com')
(2, 'Bob', 'bob@example.com')
场景 2:插入数据
功能:向 MySQL 数据库中插入新数据。
代码实现:
import mysql.connector
# 插入数据
def insert_data(name, email):
conn = connect_db()
cursor = conn.cursor()
sql = "INSERT INTO users (name, email) VALUES (%s, %s)"
val = (name, email)
cursor.execute(sql, val)
conn.commit()
print(f"插入了 {cursor.rowcount} 条数据")
cursor.close()
conn.close()
if __name__ == "__main__":
insert_data("Charlie", "charlie@example.com")
运行效果:
插入了 1 条数据
场景 3:更新数据
功能:更新 MySQL 数据库中的现有数据。
代码实现:
import mysql.connector
# 更新数据
def update_data(user_id, email):
conn = connect_db()
cursor = conn.cursor()
sql = "UPDATE users SET email = %s WHERE id = %s"
val = (email, user_id)
cursor.execute(sql, val)
conn.commit()
print(f"更新了 {cursor.rowcount} 条数据")
cursor.close()
conn.close()
if __name__ == "__main__":
update_data(1, "alice_new@example.com")
运行效果:
更新了 1 条数据
场景 4:删除数据
功能:从 MySQL 数据库中删除数据。
代码实现:
import mysql.connector
# 删除数据
def delete_data(user_id):
conn = connect_db()
cursor = conn.cursor()
sql = "DELETE FROM users WHERE id = %s"
val = (user_id,)
cursor.execute(sql, val)
conn.commit()
print(f"删除了 {cursor.rowcount} 条数据")
cursor.close()
conn.close()
if __name__ == "__main__":
delete_data(3)
运行效果:
删除了 1 条数据
4. 原理解释
-
连接数据库:通过
mysql.connector.connect()
建立与 MySQL 的连接。 -
执行 SQL:使用
cursor.execute()
执行 SQL 语句。 -
提交事务:对于写操作(插入、更新、删除),需要调用
conn.commit()
提交事务。 -
关闭连接:操作完成后,关闭游标和连接以释放资源。
-
算法原理:
- 建立数据库连接。
- 创建游标对象。
- 执行 SQL 语句。
- 获取结果(对于查询)或提交事务(对于写操作)。
- 关闭游标和连接。
-
流程图:
开始 -> 连接数据库 -> 创建游标 -> 执行 SQL -> 获取结果/提交事务 -> 关闭游标和连接 -> 结束
5. 测试步骤
- 安装依赖:
pip install mysql-connector-python
- 创建测试数据库和表:
CREATE DATABASE testdb; USE testdb; CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50), email VARCHAR(50) );
- 运行 Python 脚本:
python mysql_example.py
- 检查数据库中的数据是否符合预期。
6. 部署场景
- 本地开发:在本地机器上连接 MySQL 进行开发和测试。
- Web 应用:将 Python 脚本集成到 Web 应用中(如 Django、Flask)。
- 云服务器:在云服务器上部署 Python 脚本,连接远程 MySQL 数据库。
7. 材料链接
8. 总结
通过 Python 操作 MySQL 数据库,可以轻松实现数据的增删改查。mysql-connector-python
和 PyMySQL
是两个常用的库,适合不同的应用场景。
9. 未来展望
- ORM 框架:使用 SQLAlchemy 或 Django ORM 简化数据库操作。
- 异步支持:结合
aiomysql
实现异步数据库操作。 - 数据安全:加强数据库连接的安全性(如使用 SSL 加密)。
- 大数据处理:结合 Pandas 或 PySpark 处理大规模数据。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)