Python 操作 MySQL 数据库 通常使用 MySQL Connector 或 PyMySQL 等第三方库,通过它们可以轻松地连接、查询、更新和删除数据库中的数据。以下是使用 MySQL Connector 和 PyMySQL 操作 MySQL 数据库的基本教程。
1. 安装依赖库
1.1 安装 MySQL Connector
pip install mysql-connector-python
1.2 安装 PyMySQL
pip install pymysql
2. 连接到 MySQL 数据库
2.1 使用 MySQL Connector 连接 MySQL 数据库
import mysql.connector
# 连接到 MySQL 数据库
db = mysql.connector.connect(
host="localhost", # 主机地址
user="root", # 用户名
password="password", # 密码
database="test_db" # 数据库名称
)
# 创建一个游标对象
cursor = db.cursor()
# 执行查询
cursor.execute("SELECT DATABASE()")
result = cursor.fetchone()
print(f"当前数据库:{result[0]}")
# 关闭连接
cursor.close()
db.close()
2.2 使用 PyMySQL 连接 MySQL 数据库
import pymysql
# 连接到 MySQL 数据库
db = pymysql.connect(
host="localhost", # 主机地址
user="root", # 用户名
password="password", # 密码
database="test_db" # 数据库名称
)
# 创建一个游标对象
cursor = db.cursor()
# 执行查询
cursor.execute("SELECT DATABASE()")
result = cursor.fetchone()
print(f"当前数据库:{result[0]}")
# 关闭连接
cursor.close()
db.close()
3. 执行 SQL 查询
3.1 执行 SELECT 查询
import mysql.connector
db = mysql.connector.connect(
host="localhost",
user="root",
password="password",
database="test_db"
)
cursor = db.cursor()
# 执行 SELECT 查询
cursor.execute("SELECT * FROM employees")
# 获取所有结果
results = cursor.fetchall()
# 输出每一行
for row in results:
print(row)
cursor.close()
db.close()
3.2 执行 INSERT、UPDATE 和 DELETE 查询
INSERT 示例
import mysql.connector
db = mysql.connector.connect(
host="localhost",
user="root",
password="password",
database="test_db"
)
cursor = db.cursor()
# 执行 INSERT 语句
insert_query = "INSERT INTO employees (name, age, department) VALUES (%s, %s, %s)"
values = ("John Doe", 30, "HR")
cursor.execute(insert_query, values)
# 提交更改
db.commit()
print(f"插入 {cursor.rowcount} 条记录")
cursor.close()
db.close()
UPDATE 示例
import mysql.connector
db = mysql.connector.connect(
host="localhost",
user="root",
password="password",
database="test_db"
)
cursor = db.cursor()
# 执行 UPDATE 语句
update_query = "UPDATE employees SET age = %s WHERE name = %s"
values = (31, "John Doe")
cursor.execute(update_query, values)
# 提交更改
db.commit()
print(f"更新 {cursor.rowcount} 条记录")
cursor.close()
db.close()
DELETE 示例
import mysql.connector
db = mysql.connector.connect(
host="localhost",
user="root",
password="password",
database="test_db"
)
cursor = db.cursor()
# 执行 DELETE 语句
delete_query = "DELETE FROM employees WHERE name = %s"
values = ("John Doe",)
cursor.execute(delete_query, values)
# 提交更改
db.commit()
print(f"删除 {cursor.rowcount} 条记录")
cursor.close()
db.close()
4. 使用事务
4.1 执行事务操作
import mysql.connector
db = mysql.connector.connect(
host="localhost",
user="root",
password="password",
database="test_db"
)
cursor = db.cursor()
try:
# 开始事务
cursor.execute("START TRANSACTION")
# 执行一系列查询
cursor.execute("INSERT INTO employees (name, age, department) VALUES (%s, %s, %s)", ("Alice", 28, "IT"))
cursor.execute("INSERT INTO employees (name, age, department) VALUES (%s, %s, %s)", ("Bob", 25, "Finance"))
# 提交事务
db.commit()
print("事务提交成功")
except mysql.connector.Error as err:
db.rollback() # 回滚事务
print(f"错误: {err}")
cursor.close()
db.close()
5. 使用参数化查询
5.1 防止 SQL 注入
使用参数化查询可以有效防止 SQL 注入攻击:
import mysql.connector
db = mysql.connector.connect(
host="localhost",
user="root",
password="password",
database="test_db"
)
cursor = db.cursor()
# 使用占位符进行参数化查询
query = "SELECT * FROM employees WHERE name = %s"
cursor.execute(query, ("John Doe",))
# 获取结果
result = cursor.fetchall()
for row in result:
print(row)
cursor.close()
db.close()
6. 处理异常
在数据库操作中,使用 try...except
来捕获并处理异常:
import mysql.connector
try:
db = mysql.connector.connect(
host="localhost",
user="root",
password="wrong_password", # 错误的密码
database="test_db"
)
cursor = db.cursor()
cursor.execute("SELECT * FROM employees")
except mysql.connector.Error as err:
print(f"数据库错误: {err}")
finally:
if db.is_connected():
cursor.close()
db.close()
7. 参考资料
出站链接
站内链接
通过 MySQL 操作,您可以高效管理数据库中的数据,实现应用与数据库的无缝连接!🚀
发表回复