Python3 MySQL 数据库连接 - PyMySQL 驱动
Python3 MySQL 数据库连接 - PyMySQL 驱动
前言
在Python中,我们可以使用多种方式连接和操作MySQL数据库,其中PyMySQL作为一个可选的Python连接器驱动,可以与MySQL服务器进行交互,并提供了简便易行的API接口。PyMySQL是基于Python3的MySQL数据库连接器,它是与MySQL官方Python API 100%兼容的。
安装
PyMySQL是一个Python库,可以通过pip包管理器进行安装。打开终端并使用以下命令进行安装:
pip install PyMySQL
连接到MySQL
在使用PyMySQL之前,我们需要更改一些管理员的设置以将PyMySQL与MySQL服务器连接。具体来说,创建一个新的MySQL用户,并为他授予适当的访问权限。
在Python中连接MySQL只需要一个connect()
函数,该函数具有以下参数:
- host: 服务器地址
- user: 用户名
- password: 密码
- db: 默认数据库
- port:端口号
以下是一个连接到本地MySQL服务器的示例Python代码:
import pymysql
# 打开数据库连接
db = pymysql.connect(host="localhost", user="root", password="password", db="testdb", port=3306)
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# 执行 SQL 语句
cursor.execute("SELECT VERSION()")
# 使用 fetchone() 方法获取单条数据.
data = cursor.fetchone()
print("MySQL版本为:%s" % data)
# 关闭数据库连接
db.close()
执行SQL语句
在连接到MySQL之后,我们可以使用游标来执行SQL语句。游标是一个用于管理数据库查询的对象,我们可以将它视为在数据库中浏览和检索数据的指针。
以下是一个简单的从MySQL数据查询数据的示例代码:
import pymysql
# 打开数据库连接
db = pymysql.connect(host="localhost", user="root", password="password", db="testdb", port=3306)
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# SQL 查询语句
sql = "SELECT * FROM users"
try:
# 执行SQL语句
cursor.execute(sql)
# 获取所有记录列表
results = cursor.fetchall()
for row in results:
id = row[0]
name = row[1]
age = row[2]
sex = row[3]
# 打印结果
print("id=%d, name=%s, age=%d, sex=%s" % (id, name, age, sex))
except:
print("Error: unable to fetch data")
# 关闭数据库连接
db.close()
插入数据
在MySQL中插入数据时,我们通常会使用INSERT语句。以下是一个简单的示例程序。
import pymysql
# 打开数据库连接
db = pymysql.connect(host="localhost", user="root", password="password", db="testdb", port=3306)
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# SQL 插入语句
sql = """INSERT INTO users(name, age, sex)VALUES('Tom', 24, '男')"""
try:
# 执行SQL语句
cursor.execute(sql)
# 提交到数据库执行
db.commit()
print("数据插入成功")
except:
# 如果发生错误则回滚
db.rollback()
print("数据插入失败")
# 关闭数据库连接
db.close()
更新数据
在MySQL中更新数据时,我们通常会使用UPDATE语句。以下是一个简单的示例程序。
import pymysql
# 打开数据库连接
db = pymysql.connect(host="localhost", user="root", password="password", db="testdb", port=3306)
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# SQL 更新语句
sql = """UPDATE users SET age = age + 1 WHERE sex = '男'"""
try:
# 执行SQL语句
cursor.execute(sql)
# 提交到数据库执行
db.commit()
print("数据更新成功")
except:
# 如果发生错误则回滚
db.rollback()
print("数据更新失败")
# 关闭数据库连接
db.close()
删除数据
在MySQL中删除数据时,我们通常会使用DELETE语句。以下是一个简单的示例程序。
import pymysql
# 打开数据库连接
db = pymysql.connect(host="localhost", user="root", password="password", db="testdb", port=3306)
# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()
# SQL 删除语句
sql = """DELETE FROM users WHERE age > 24"""
try:
# 执行SQL语句
cursor.execute(sql)
# 提交到数据库执行
db.commit()
print("数据删除成功")
except:
# 如果发生错误则回滚
db.rollback()
print("数据删除失败")
# 关闭数据库连接
db.close()
结论
PyMySQL是一个可靠和易于学习的Python库,它提供了一种与MySQL服务器交互的方式,并且可以作为许多数据科学和Web应用程序的一部分。通过本文的学习,你应该掌握了如何连接MySQL服务器以及如何执行常用的数据库操作。随着你的Python编程技能不断提高,你可能会发现有更多高级功能,例如事务处理和存储过程的使用。