简介
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