📅  最后修改于: 2023-12-03 14:52:31.231000             🧑  作者: Mango
在 Python 中,我们可以使用 pymysql 库来连接 MySQL 数据库。在本文中,我们将介绍如何在 Python 中连接到 MySQL 数据库。
在开始之前,我们需要先安装 pymysql 库。我们可以使用 pip 命令来安装:
pip install pymysql
在连接到 MySQL 数据库之前,我们需要确保 MySQL 服务器已经启动。在本示例中,我们将连接到本地 MySQL 服务器。
import pymysql
# 打开数据库连接
db = pymysql.connect(host="localhost", user="root", password="password", database="test")
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 使用 execute() 方法执行 SQL 查询
cursor.execute("SELECT VERSION()")
# 使用 fetchone() 方法获取单条数据.
data = cursor.fetchone()
print("Database version : %s " % data)
# 关闭数据库连接
db.close()
在上述示例中,我们使用 pymysql.connect() 方法连接到 MySQL 数据库。该方法接受四个参数:
使用 pymysql.connect() 方法创建数据库连接后,我们使用 cursor() 方法创建游标对象。游标对象用于执行 SQL 查询,并处理结果集。
在本示例中,我们使用 cursor.execute() 方法执行 SELECT VERSION() 查询。使用 fetchone() 方法获取返回的单条数据,并将其打印到控制台上。
最后,我们使用 db.close() 方法关闭数据库连接。
通过 pymysql 库,我们可以使用游标对象执行 SQL 查询,并处理查询结果。例如,我们可以执行 SELECT 查询,并遍历结果集。
import pymysql
# 打开数据库连接
db = pymysql.connect(host="localhost", user="root", password="password", database="test")
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 使用 execute() 方法执行 SQL 查询
cursor.execute("SELECT * FROM users")
# 使用 fetchall() 方法获取所有数据.
data = cursor.fetchall()
# 遍历结果集
for row in data:
print(row)
# 关闭数据库连接
db.close()
在上述代码中,我们执行 SELECT * FROM users 查询,并使用 fetchall() 方法获取所有数据。我们遍历结果集并将其打印到控制台上。
除了 SELECT 查询,我们还可以执行插入、更新和删除等操作。例如,我们可以执行 INSERT 语句来插入新数据。
import pymysql
# 打开数据库连接
db = pymysql.connect(host="localhost", user="root", password="password", database="test")
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# SQL 插入语句
sql = "INSERT INTO users(name, age) VALUES ('Tom', 18)"
try:
# 执行 SQL 语句
cursor.execute(sql)
# 提交到数据库执行
db.commit()
print("新数据插入成功")
except:
# 如果发生错误则回滚
db.rollback()
print("新数据插入失败")
# 关闭数据库连接
db.close()
在上述代码中,我们使用 INSERT 语句将新数据插入到 users 表中。使用 cursor.execute() 方法执行 SQL 语句,并使用 db.commit() 方法将更改提交到数据库。
如果执行 INSERT 语句发生错误,则可以使用 db.rollback() 方法回滚事务,并撤销修改。
在本文中,我们介绍了如何在 Python 中连接到 MySQL 数据库,并执行 SELECT 和 INSERT 等 SQL 操作。在实际应用中,我们可以使用 pymysql 库轻松操作 MySQL 数据库。