PyMySQL MySQL驱动:Python连接MySQL数据库实战指南

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

简介

MySQL 是最流行的关系型数据库之一,广泛应用于Web开发和企业级解决方案。在Python中,PyMySQL驱动是连接MySQL的常用选择——它是一个纯Python实现的MySQL客户端库。PyMySQL易于使用、维护活跃,并且与SQLAlchemy和Pandas等主流库兼容。

PyMySQL作为MySQL驱动,让您能够连接数据库、执行SQL查询、管理事务,并轻松集成到Web框架中,无需复杂配置。与其他驱动不同,PyMySQL完全用Python编写,因此跨平台且安装简单。

什么是PyMySQL

PyMySQL是一个Python客户端库,实现了MySQL客户端/服务器协议。它提供了连接MySQL服务器和执行SQL查询的接口。该库遵循Python Database API 2.0规范(PEP 249),确保与其他Python应用程序的兼容性。

PyMySQL的主要特性

  • 纯Python实现:无需C/C++外部依赖
  • 兼容性强:支持MySQL 5.5及以上版本
  • 安全可靠:内置SQL注入防护
  • 性能出色:针对快速查询执行进行了优化
  • 易于使用:API直观易懂

安装与连接MySQL

安装

pip install pymysql

如需额外功能,建议安装:

pip install pymysql[rsa]  # 支持RSA认证

连接数据库

import pymysql

connection = pymysql.connect(
    host='localhost',
    user='root',
    password='password',
    database='test_db',
    port=3306,
    charset='utf8mb4',
    cursorclass=pymysql.cursors.DictCursor
)

DictCursor让查询结果以字典形式返回,而非元组,使数据处理更加方便。

连接参数

参数 说明 类型 默认值
host MySQL服务器主机 str 'localhost'
port 服务器端口 int 3306
user 用户名 str None
password 密码 str None
database 数据库名称 str None
charset 字符编码 str 'utf8mb4'
autocommit 自动提交 bool False
cursorclass 游标类 class Cursor

创建数据库和表

# 创建数据库
with connection.cursor() as cursor:
    cursor.execute("CREATE DATABASE IF NOT EXISTS test_db")

# 创建表
with connection.cursor() as cursor:
    cursor.execute("""
        CREATE TABLE IF NOT EXISTS users (
            id INT AUTO_INCREMENT PRIMARY KEY,
            name VARCHAR(100) NOT NULL,
            email VARCHAR(100) UNIQUE,
            age INT,
            created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
        )
    """)
connection.commit()

PyMySQL的CRUD操作

插入数据

# 插入单条记录
with connection                    

推荐