Python操作MySQL:pymsql与SQLAlchemy详解

0 下载量 139 浏览量 更新于2024-08-31 收藏 416KB PDF 举报
"这篇文档介绍了Python操作MySQL的两种主要方式,包括使用原生模块`pymysql`和ORM框架`SQLAlchemy`。通过`pymysql`模块,演示了如何建立连接、创建游标以及执行SQL查询和插入操作。对于`SQLAlchemy`,虽然没有详细展开,但它是Python中常用的ORM工具,可以将数据库操作转化为面向对象的方式,提高开发效率。" Python与MySQL的交互通常涉及两种方法:原生模块和对象关系映射(ORM)框架。本文重点讨论了`pymysql`和`SQLAlchemy`。 首先,`pymysql`是Python连接MySQL的原生模块,适用于基础的数据库操作。在Windows环境下,可以通过`pip install pymysql`命令进行安装。以下是一个简单的使用示例: 1. 建立连接:提供数据库服务器的地址(如`host`)、端口(如`port`)、用户名(`user`)、密码(`passwd`)和数据库名(`db`)来创建连接。 ```python conn = pymysql.connect(host='192.168.123.207', port=3306, user='root', passwd='root', db='test') ``` 2. 创建游标:游标允许我们执行SQL语句并获取结果。 ```python cursor = conn.cursor() ``` 3. 执行SQL:通过游标执行SQL查询,例如查询`student`表中的所有数据。 ```python effect_row = cursor.execute("SELECT * FROM student") ``` 4. 处理结果:获取查询结果,可以使用`fetchone()`、`fetchmany(size)`或`fetchall()`。 ```python # 获取第一条数据 print(cursor.fetchone()) # 获取前三条数据 print('>>>>>', cursor.fetchmany(3)) # 获取所有数据 print('------', cursor.fetchall()) ``` 5. 插入数据:同样通过游标执行插入操作,例如插入多条记录到`student`表。 ```python data = [("N1", 23, "2015-01-01", "M"), ("N2", 24, "2015-01-02", "F")] # 批量插入数据 cursor.executemany("INSERT INTO student VALUES (%s,%s,%s,%s)", data) # 提交事务 conn.commit() ``` 其次,`SQLAlchemy`是一种强大的ORM框架,它允许开发者以面向对象的方式来操作数据库,提高了代码的可读性和可维护性。虽然文中没有详细介绍`SQLAlchemy`的使用,但基本步骤包括定义模型类(映射到数据库表)、创建会话(Session)对象以执行操作,以及使用会话来查询和保存数据。 总结来说,`pymysql`适合简单且直接的SQL操作,而`SQLAlchemy`则更适合大型项目,它通过抽象数据库操作,使得代码更加简洁和易于理解。根据项目的具体需求,开发者可以选择合适的方法来实现Python与MySQL的交互。