Pymysql
关注B站可以观看更多实战教学视频:肆十二-的个人空间-肆十二-个人主页-哔哩哔哩视频 (bilibili.com)
pymysql
是一个用于连接MySQL数据库的Python库,它允许你执行SQL查询并处理返回的结果。以下是pymysql
库的一些常见用法和代码示例:
1. 安装pymysql
首先,你需要安装pymysql
库。可以使用pip
命令来安装:
bash复制代码
pip install pymysql
2. 连接到MySQL数据库
使用pymysql.connect()
函数来建立与MySQL数据库的连接。
import pymysql
# 创建连接
connection = pymysql.connect(
host='localhost', # 数据库服务器地址
user='your_username', # 数据库用户名
password='your_password', # 数据库密码
database='your_database', # 数据库名
charset='utf8mb4' # 字符集(兼容更多的文字)
)
3. 创建游标对象
为了执行SQL查询,你需要创建一个游标对象。
# 创建一个游标对象 cursor
cursor = connection.cursor()
4. 执行SQL查询
使用游标对象的execute()
方法来执行SQL查询。
# 执行SQL查询语句
sql = "SELECT * FROM your_table"
try:
# 执行SQL语句
cursor.execute(sql)
# 获取所有记录列表
results = cursor.fetchall()
for row in results:
print(row) # 打印每一行数据
except Exception as e:
print(f"Error: unable to fetch data: {e}")
5. 插入数据
插入数据时,也要执行SQL语句,并在执行后提交事务以确保数据被保存。
# 插入单条数据
sql = "INSERT INTO your_table (column1, column2) VALUES (%s, %s)"
values = ("value1", "value2")
try:
cursor.execute(sql, values)
# 提交到数据库执行
connection.commit()
print("Insert successful!")
except Exception as e:
# 如果发生错误则回滚
connection.rollback()
print(f"Error: unable to insert data: {e}")
6. 更新和删除数据
更新和删除数据的操作类似于插入数据,只是SQL语句不同。
# 更新数据
update_sql = "UPDATE your_table SET column1 = %s WHERE column2 = %s"
update_values = ("new_value", "condition_value")
try:
cursor.execute(update_sql, update_values)
connection.commit()
print("Update successful!")
except Exception as e:
connection.rollback()
print(f"Error: unable to update data: {e}")
# 删除数据
delete_sql = "DELETE FROM your_table WHERE column1 = %s"
delete_values = ("value_to_delete",)
try:
cursor.execute(delete_sql, delete_values)
connection.commit()
print("Delete successful!")
except Exception as e:
connection.rollback()
print(f"Error: unable to delete data: {e}")
7. 关闭连接
完成所有数据库操作后,别忘了关闭游标和连接。
# 关闭游标和连接
cursor.close()
connection.close()
注意事项:
- 总是确保在处理数据库操作时使用
try-except
块来捕获任何潜在的异常。 - 在执行插入、更新或删除操作后,使用
connection.commit()
提交事务。 - 如果在执行过程中出现错误,使用
connection.rollback()
回滚事务。 - 始终在程序结束时关闭游标和数据库连接,以释放资源。