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编程技能不断提高,你可能会发现有更多高级功能,例如事务处理和存储过程的使用。