太全了!用Python操作MySQL的使用教程集锦!("Python操作MySQL超全教程汇总:从入门到精通!")
原创
一、Python连接MySQL数据库
Python操作MySQL数据库,首先需要安装MySQL的Python驱动库。常用的库有MySQLdb和pymysql。这里以pymysql为例进行介绍。
1. 安装pymysql库
使用pip命令安装pymysql库:
pip install pymysql
2. 连接MySQL数据库
以下是一个单纯的示例,展示怎样使用pymysql连接MySQL数据库:
import pymysql
# 数据库配置信息
config = {
'host': 'localhost',
'port': 3306,
'user': 'root',
'password': 'password',
'database': 'testdb',
'charset': 'utf8mb4'
}
# 连接数据库
connection = pymysql.connect(**config)
# 关闭数据库连接
connection.close()
二、Python操作MySQL数据库
在连接MySQL数据库后,我们可以进行增删改查等操作。
1. 查询操作
以下是一个查询操作的示例:
import pymysql
# 数据库配置信息
config = {
'host': 'localhost',
'port': 3306,
'user': 'root',
'password': 'password',
'database': 'testdb',
'charset': 'utf8mb4'
}
# 连接数据库
connection = pymysql.connect(**config)
try:
with connection.cursor() as cursor:
# SQL查询语句
sql = "SELECT * FROM students"
cursor.execute(sql)
# 获取所有记录
results = cursor.fetchall()
for row in results:
id = row[0]
name = row[1]
age = row[2]
print(f"ID: {id}, Name: {name}, Age: {age}")
finally:
connection.close()
2. 插入操作
以下是一个插入操作的示例:
import pymysql
# 数据库配置信息
config = {
'host': 'localhost',
'port': 3306,
'user': 'root',
'password': 'password',
'database': 'testdb',
'charset': 'utf8mb4'
}
# 连接数据库
connection = pymysql.connect(**config)
try:
with connection.cursor() as cursor:
# SQL插入语句
sql = "INSERT INTO students (name, age) VALUES (%s, %s)"
cursor.execute(sql, ('张三', 20))
# 提交事务
connection.commit()
finally:
connection.close()
3. 更新操作
以下是一个更新操作的示例:
import pymysql
# 数据库配置信息
config = {
'host': 'localhost',
'port': 3306,
'user': 'root',
'password': 'password',
'database': 'testdb',
'charset': 'utf8mb4'
}
# 连接数据库
connection = pymysql.connect(**config)
try:
with connection.cursor() as cursor:
# SQL更新语句
sql = "UPDATE students SET age = %s WHERE name = %s"
cursor.execute(sql, (25, '张三'))
# 提交事务
connection.commit()
finally:
connection.close()
4. 删除操作
以下是一个删除操作的示例:
import pymysql
# 数据库配置信息
config = {
'host': 'localhost',
'port': 3306,
'user': 'root',
'password': 'password',
'database': 'testdb',
'charset': 'utf8mb4'
}
# 连接数据库
connection = pymysql.connect(**config)
try:
with connection.cursor() as cursor:
# SQL删除语句
sql = "DELETE FROM students WHERE name = %s"
cursor.execute(sql, ('张三',))
# 提交事务
connection.commit()
finally:
connection.close()
三、Python操作MySQL高级特性
除了基本的增删改查操作外,Python还可以实现更多高级特性,如事务处理、批量操作等。
1. 事务处理
以下是一个事务处理的示例:
import pymysql
# 数据库配置信息
config = {
'host': 'localhost',
'port': 3306,
'user': 'root',
'password': 'password',
'database': 'testdb',
'charset': 'utf8mb4'
}
# 连接数据库
connection = pymysql.connect(**config)
try:
with connection.cursor() as cursor:
# 开启事务
connection.begin()
# 执行多个操作
sql1 = "UPDATE students SET age = %s WHERE name = %s"
cursor.execute(sql1, (26, '张三'))
sql2 = "INSERT INTO students (name, age) VALUES (%s, %s)"
cursor.execute(sql2, ('李四', 22))
# 提交事务
connection.commit()
except Exception as e:
# 出现异常时回滚
connection.rollback()
finally:
connection.close()
2. 批量操作
以下是一个批量插入的示例:
import pymysql
# 数据库配置信息
config = {
'host': 'localhost',
'port': 3306,
'user': 'root',
'password': 'password',
'database': 'testdb',
'charset': 'utf8mb4'
}
# 连接数据库
connection = pymysql.connect(**config)
try:
with connection.cursor() as cursor:
# SQL批量插入语句
sql = "INSERT INTO students (name, age) VALUES (%s, %s)"
# 批量插入数据
data = [
('王五', 23),
('赵六', 24),
('孙七', 25)
]
cursor.executemany(sql, data)
# 提交事务
connection.commit()
finally:
connection.close()
四、Python操作MySQL最佳实践
在使用Python操作MySQL时,以下是一些最佳实践:
- 使用with语句管理数据库连接和游标,确保资源正确释放。
- 使用try-except结构处理异常,确保事务的正确提交和回滚。
- 使用参数化查询,防止SQL注入攻击。
- 在适当的时候使用批量操作,节约数据库操作效能。
- 避免在Python代码中处理大量数据,尽量使用SQL语句进行数据处理。
五、总结
本文介绍了Python操作MySQL数据库的基本方法,包括连接数据库、增删改查操作、事务处理和批量操作等。通过这些方法,我们可以方便地在Python程序中操作MySQL数据库,实现数据的存储和查询。在实际应用中,我们还需要遵循一些最佳实践,确保代码的稳固性和效能。