数据库在现代应用程序中至关重要,而 MySQL 以其高效和易用性受到开发者青睐。Python 通过简单的语法和强大的库,让数据操作变得更轻松。本教程将帮助您掌握 Python 与 MySQL 的结合应用,适用于数据存储、查询和分析。
MySQL 基础
在操作 MySQL 之前,你需要先安装 MySQL 数据
安装好MySQL后你会得到MySQL的地址、端口、用户名、密码。
-- 创建数据库CREATE DATABASE mydatabase;
-- 使用数据库USE mydatabase;
-- 创建表CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL, email VARCHAR(100) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP);
mydatabase
的数据库和一个 users
表,包含用户 ID、用户名、邮箱和创建时间。Python 连接 MySQL
要用 Python 操作 MySQL,推荐使用 mysql-connector-python
库。先安装它:
pip install mysql-connector-python
以下是连接 MySQL 并查询数据的完整代码:
import mysql.connector
# 建立连接connection = mysql.connector.connect( host="localhost", user="your_username", password="your_password", database="mydatabase")
# 创建游标cursor = connection.cursor()
# 执行查询cursor.execute("SELECT * FROM users")
# 获取结果results = cursor.fetchall()
# 打印结果for row in results: print(row)
# 关闭游标和连接cursor.close()connection.close()
mydatabase
,查询 users
表并打印结果。注意替换 your_username
和 your_password
为您的实际凭据。事务管理
事务是一组操作,要么全部成功,要么全部失败,确保数据一致性。以下是 Python 中管理事务的示例:
import mysql.connector
connection = mysql.connector.connect( host="localhost", user="your_username", password="your_password", database="mydatabase")
try: # 开始事务 connection.start_transaction()
cursor = connection.cursor()
# 执行插入操作 cursor.execute("INSERT INTO users (username, email) VALUES ('user1', 'user1@example.com')") cursor.execute("INSERT INTO users (username, email) VALUES ('user2', 'user2@example.com')")
# 提交事务 connection.commit()
except mysql.connector.Error as error: # 回滚事务 connection.rollback() print(f"事务失败: {error}")
finally: cursor.close() connection.close()
此示例插入两条记录,若成功则提交,否则回滚。
连接池
连接池通过预创建连接提高性能,避免频繁建立和关闭连接。以下是使用连接池的示例:
import mysql.connectorfrom mysql.connector import pooling
# 配置连接池dbconfig = { "host": "localhost", "user": "your_username", "password": "your_password", "database": "mydatabase"}connection_pool = pooling.MySQLConnectionPool(pool_name="mypool", pool_size=5, **dbconfig)
# 获取连接connection = connection_pool.get_connection()
# 创建游标cursor = connection.cursor()
# 执行查询cursor.execute("SELECT * FROM users")
# 获取结果results = cursor.fetchall()
# 打印结果for row in results: print(row)
# 关闭游标和连接cursor.close()connection.close()
此代码创建了一个大小为 5 的连接池,从中获取连接执行查询。
错误处理
数据库操作可能出错,如连接失败或语法错误。以下是处理错误的示例:
import mysql.connector
try: connection = mysql.connector.connect( host="localhost", user="your_username", password="your_password", database="mydatabase" )
cursor = connection.cursor()
# 执行错误查询 cursor.execute("SELECT * FROM non_existent_table")
except mysql.connector.Error as error: print(f"数据库错误: {error}")
finally: if 'cursor' in locals(): cursor.close() if 'connection' in locals(): connection.close()
© 版权声明
文章版权归原作者所有,本站只做转载和学习以及开发者个人原创。声明:下载本站资源即同意用户协议,本站程序仅供内部学习研究软件设计思想和原理使用,学习研究后请自觉删除,请勿传播,因未及时删除所造成的任何后果责任自负。
THE END
暂无评论内容