文章目录
- 1. PyMySQL 简介
- 2. 安装 PyMySQL
- 3. 基本使用:连接数据库与增删改查
- 3.1.连接数据库
- 3.2 创建表
- 3.4 查询数据
- 3.5 更新数据
- 3.6 删除数据
1. PyMySQL 简介
PyMySQL 是一个纯 Python 实现的 MySQL 客户端库,用于连接和操作 MySQL 数据库。它兼容 Python 3.x,并且是 MySQLdb(MySQL-python)的替代品。PyMySQL 提供了简单易用的 API,支持连接池、事务管理、预处理语句等功能,是 Python 开发者操作 MySQL 数据库的首选工具之一。
为什么选择 PyMySQL?
-
纯 Python 实现:无需安装额外的 C 扩展,跨平台兼容性好。
-
易于使用:API 设计简洁,学习成本低。
-
功能丰富:支持事务、预处理语句、连接池等高级功能。
-
活跃的社区:PyMySQL 是一个开源项目,拥有活跃的社区支持。
2. 安装 PyMySQL
在开始使用 PyMySQL 之前,需要先安装它。可以通过 pip 命令轻松安装:
pip install pymysql
3. 基本使用:连接数据库与增删改查
3.1.连接数据库
连接数据库需要事先准备好主机地址(默认为localhost)
,数据库用户名
,数据库密码
,数据库名称
,字符集
,使用的字典类型的游标(可以省略)
import pymysql# 连接数据库
def get_connection():connection = pymysql.connect(host='localhost', # 数据库主机地址user='root', # 数据库用户名password='password', # 数据库密码database='testdb', # 数据库名称charset='utf8mb4', # 字符集cursorclass=pymysql.cursors.DictCursor # 使用字典类型的游标)return connection
3.2 创建表
在操作数据之前,通常需要先创建表。以下是一个创建表的示例:
def create_table():#创建连接conn = get_connection()# 创建游标对象cur = connection.cursor()try:# 创建表sql = """CREATE TABLE IF NOT EXISTS users (id INT AUTO_INCREMENT PRIMARY KEY,name VARCHAR(255) NOT NULL,email VARCHAR(255) NOT NULL)"""#执行事务cur.execute(sql)print("Table created successfully!")except pymysql.Error as e:print(f"Error: {e}")finally:cur.close()#关闭游标conn.close()#关闭连接
3.3 插入数据
使用 INSERT语句可以向表中插入数据:
def insert_data():#创建连接conn = get_connection()# 创建游标对象cur = connection.cursor()try:# 插入数据sql = "INSERT INTO users (name, email) VALUES (%s, %s)"#执行事务cur.execute(sql, ('John Doe', 'john@example.com'))# 提交事务conn.commit()print("Data inserted successfully!")except pymysql.Error as e:print(f"Error: {e}")finally:cur.close()#关闭游标conn.close()#关闭连接
3.4 查询数据
使用 SELECT 语句可以从表中查询数据:
1、查询全部数据
def search_all():#创建连接conn = get_connection()# 创建游标对象cur = connection.cursor()try:# 查询数据sql = "SELECT * FROM users"#执行事务cursor.execute(sql)# 获取所有记录results = cur.fetchall()return resultsexcept pymysql.Error as e:print(f"Error: {e}")finally:cur.close()#关闭游标conn.close()#关闭连接
2、条件查询
def search_record_by_condition(numID):conn = get_connection()cur = conn.cursor()sql = f"select * from checkinrecord where cnumID={numID}"try:cur.execute(sql)data = cur.fetchall()return dataexcept Exception as e:print(f'Error:{e} ')finally:cur.close()#关闭游标conn.close()#关闭连接
3.5 更新数据
使用 UPDATE 语句可以更新表中的数据:
def update_data():conn = get_connection()cur = conn.cursor()sql = "UPDATE users SET email = %s WHERE name = %s"try:#执行事务cur.execute(sql, ('john.doe@example.com', 'John Doe'))# 提交事务connection.commit()print("Data updated successfully!")except Exception as e:print(f'Error:{e} ')finally:cur.close()#关闭游标conn.close()#关闭连接
3.6 删除数据
使用 DELETE 语句可以从表中删除数据:
def delete_data():conn = get_connection()cur = conn.cursor()sql = "DELETE FROM users WHERE name = %s"try:cur.execute(sql, ('John Doe',))# 提交事务conn.commit()print("Data deleted successfully!")except Exception as e:print(f'Error:{e} ')finally:cur.close()#关闭游标conn.close()#关闭连接
PyMySQL 是一个功能强大且易于使用的工具,适合各种规模的 Python 项目。如果你有更多关于 PyMySQL 的问题,欢迎在评论区留言讨论!
参考文档
-
PyMySQL 官方文档
-
MySQL 官方文档
希望这篇博客对你有所帮助!如果有任何问题或建议,欢迎在评论区交流!