欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 手游 > python操作MySQL数据库

python操作MySQL数据库

2025/11/5 19:56:21 来源:https://blog.csdn.net/2501_91344034/article/details/148242384  浏览:    关键词:python操作MySQL数据库

1. 安装依赖库

常用库:

  • PyMySQL(纯 Python 实现)

  • mysql-connector-python(MySQL 官方驱动)

# 安装 PyMySQL
pip install pymysql# 安装 mysql-connector-python
pip install mysql-connector-python

2. 连接数据库

使用 PyMySQL
import pymysql# 建立连接
conn = pymysql.connect(host='localhost',   # 数据库地址user='root',        # 用户名password='123456', # 密码database='testdb',  # 数据库名charset='utf8mb4',  # 字符编码cursorclass=pymysql.cursors.DictCursor  # 返回字典格式的结果
)# 创建游标对象
cursor = conn.cursor()
使用 mysql-connector
import mysql.connectorconn = mysql.connector.connect(host='localhost',user='root',password='123456',database='testdb'
)
cursor = conn.cursor(dictionary=True)  # 返回字典格式结果

3. 执行 SQL 操作

创建表
create_table_sql = """
CREATE TABLE IF NOT EXISTS users (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(255),email VARCHAR(255)
)
"""
cursor.execute(create_table_sql)
conn.commit()  # 提交事务
插入数据
# 单条插入(参数化查询防止 SQL 注入)
insert_sql = "INSERT INTO users (name, email) VALUES (%s, %s)"
cursor.execute(insert_sql, ('Alice', 'alice@example.com'))
conn.commit()# 批量插入
data = [('Bob', 'bob@example.com'), ('Charlie', 'charlie@example.com')]
cursor.executemany(insert_sql, data)
conn.commit()
查询数据
select_sql = "SELECT * FROM users WHERE name = %s"
cursor.execute(select_sql, ('Alice',))# 获取所有结果
results = cursor.fetchall()
for row in results:print(row)  # 字典格式(如使用 DictCursor)或元组# 获取单条结果
single_row = cursor.fetchone()
print(single_row)
更新数据
update_sql = "UPDATE users SET email = %s WHERE name = %s"
cursor.execute(update_sql, ('new_email@example.com', 'Alice'))
conn.commit()
删除数据
delete_sql = "DELETE FROM users WHERE name = %s"
cursor.execute(delete_sql, ('Bob',))
conn.commit()

4. 事务管理

try:# 执行多个操作cursor.execute(sql1)cursor.execute(sql2)conn.commit()  # 提交事务
except Exception as e:conn.rollback()  # 回滚事务print(f"Error: {e}")

5. 关闭连接

cursor.close()
conn.close()

6. 异常处理

from pymysql import MySQLErrortry:# 数据库操作
except MySQLError as e:print(f"MySQL Error: {e}")
except Exception as e:print(f"General Error: {e}")

完整示例

import pymysql# 连接数据库
conn = pymysql.connect(host='localhost',user='root',password='123456',database='testdb',charset='utf8mb4',cursorclass=pymysql.cursors.DictCursor
)try:with conn.cursor() as cursor:# 创建表cursor.execute("""CREATE TABLE IF NOT EXISTS users (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(255),email VARCHAR(255))""")# 插入数据cursor.execute("INSERT INTO users (name, email) VALUES (%s, %s)", ('Alice', 'alice@example.com'))# 查询数据cursor.execute("SELECT * FROM users")rows = cursor.fetchall()print("Users:")for row in rows:print(row)conn.commit()  # 提交事务except Exception as e:conn.rollback()print(f"Error: {e}")finally:conn.close()

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词