使用PyMySQL执行多个SQL语句

在Python中,我们可以使用PyMySQL库连接MySQL数据库并执行SQL语句。本文将介绍如何在PyMySQL中执行多个SQL语句,包括创建数据库、创建表、插入数据、查询数据等操作,并提供相应的代码示例。

安装PyMySQL

如果尚未安装PyMySQL,可以通过以下命令进行安装:

pip install pymysql

示例代码

我们将用一个示例程序来展示如何在数据库中执行多个语句。假设我们要创建一个名为test_db的数据库,创建一个users表,并插入几条记录。

import pymysql

# 连接到数据库
connection = pymysql.connect(
    host='localhost',
    user='your_username',
    password='your_password'
)

# 使用open事务
try:
    with connection.cursor() as cursor:
        # 创建数据库
        cursor.execute("CREATE DATABASE IF NOT EXISTS test_db")

        # 使用新创建的数据库
        cursor.execute("USE test_db")

        # 创建表
        cursor.execute("""
        CREATE TABLE IF NOT EXISTS users (
            id INT AUTO_INCREMENT PRIMARY KEY,
            username VARCHAR(255) NOT NULL,
            email VARCHAR(255) NOT NULL
        )
        """)

        # 插入数据
        insert_sql = "INSERT INTO users (username, email) VALUES (%s, %s)"
        users = [
            ('Alice', 'alice@example.com'),
            ('Bob', 'bob@example.com'),
            ('Charlie', 'charlie@example.com')
        ]
        cursor.executemany(insert_sql, users)

    # 提交事务
    connection.commit()

    # 查询数据
    with connection.cursor() as cursor:
        cursor.execute("SELECT * FROM users")
        result = cursor.fetchall()
        for row in result:
            print(row)

except Exception as e:
    print(f"发生错误: {e}")
    connection.rollback()

finally:
    connection.close()

代码解读

  1. 连接到数据库:首先,使用pymysql.connect连接到MySQL数据库。
  2. 事务处理:使用try语句来处理异常,确保在出现错误时可以回滚事务。
  3. 执行多个SQL语句:使用execute方法执行创建数据库、创建表和插入数据的多个SQL语句。
  4. 查询数据:通过再次使用cursor查询users表,并打印结果。
  5. 关闭连接:使用finally确保在操作完成后关闭数据库连接。

关系图

为了更清晰地展示数据库的结构,我们可以使用mermaid语法绘制关系图,展示users表的结构。

erDiagram
    USERS {
        INT id PK "用户ID"
        STRING username "用户名"
        STRING email "用户邮箱"
    }

类图

如果将我们的数据库操作封装为一个类,可以使用mermaid语法绘制类图,如下所示:

classDiagram
    class DatabaseManager {
        +connect()
        +create_database()
        +create_table()
        +insert_users()
        +query_users()
        +close()
    }

结尾

通过本文,我们展示了如何使用PyMySQL库进行数据库操作,如何执行多个SQL语句,以创建一个示例数据库并插入和查询数据。这种方式为Python开发者在处理MySQL数据库时提供了强大而灵活的工具。希望这篇文章能帮助您更好地理解和使用PyMySQL