Python操作MySQL:pymysql与sqlalchemy实战指南
66 浏览量
更新于2024-08-29
1
收藏 161KB PDF 举报
本文主要介绍了如何使用Python进行MySQL数据库操作,重点讲解了pymysql和sqlalchemy两个库的常见用法,包括创建、查看、修改和删除表,以及插入、查询、更新和删除数据。
1. **pymysql操作MySQL**
- **创建表**:使用`execute()`方法执行SQL语句,如`CREATE TABLE`,来创建新的表结构。
- **查看表**:通过`SELECT`语句查看数据库中的表,例如`SHOW TABLES;`。
- **修改表**:使用`ALTER TABLE`语句修改表结构,如增加、删除或修改字段。
- **删除表**:使用`DROP TABLE`语句删除表。
- **插入数据**:使用`INSERT INTO`语句向表中插入数据。
- **查看数据**:通过`SELECT`查询数据,可以使用`*`通配符获取所有列,或指定特定列。
- **修改数据**:使用`UPDATE`语句更新已有数据,配合`WHERE`子句定位需要修改的记录。
- **删除数据**:使用`DELETE FROM`语句删除数据,同样需要`WHERE`子句来确定删除条件。
2. **sqlalchemy操作MySQL**
- **创建表**:sqlalchemy使用`Table`对象和`metadata`来定义表结构,然后调用`create()`方法创建表。
- **查看表**:可以通过`Inspector`类检查数据库中的表。
- **修改表**:使用`alter()`方法对已有的表结构进行修改。
- **删除表**:调用`drop()`方法删除表。
- **插入数据**:使用`Session`对象的`add()`方法添加新记录,然后`commit()`提交事务。
- **查看数据**:通过`Session.query()`方法查询数据,可以链式调用各种查询方法。
- **修改数据**:先用`query()`找到要修改的记录,再用`update()`方法更新,最后`commit()`。
- **删除数据**:使用`Session.delete()`删除记录,提交事务后生效。
3. **使用示例**
- 在使用pymysql时,需要先建立连接和游标,然后执行SQL语句,最后关闭游标和连接。
- sqlalchemy则提供了面向对象的ORM(对象关系映射)方式,通过Python类定义表结构,使用对象进行数据库操作,简化了SQL语句的编写。
4. **事务处理**
- 在pymysql中,需要手动调用`commit()`提交事务,`rollback()`回滚事务。
- sqlalchemy的`Session`对象自动管理事务,`commit()`提交当前事务,`rollback()`回滚未提交的更改。
5. **性能与适用场景**
- pymysql适合简单的SQL操作,对性能要求较高或需要低级控制的场景。
- sqlalchemy提供更高级的抽象,适用于复杂的业务逻辑和对象模型,但可能在性能上稍逊一筹。
6. **编码支持**
- 在连接MySQL时,如果需要支持中文,可以在连接参数中设置`charset="utf8"`。
总结,pymysql和sqlalchemy都是Python操作MySQL的有效工具,选择使用哪个取决于项目需求和开发者的偏好。pymysql更适合直接执行SQL,而sqlalchemy则提供了更强大的对象模型和ORM功能。
2024-11-25 上传
2024-11-25 上传
2023-06-07 上传
2023-08-18 上传
2023-04-21 上传
2023-06-03 上传
weixin_38727825
- 粉丝: 3
- 资源: 900
最新资源
- AES:AES算法库在C中以128位192位256位实现
- 【地产资料】XX地产 新LOGO_的PPT模板及使用规范P8.zip
- java学习
- Excel模板学生成绩统计表Excel(含图含公式).zip
- abacus:CLI应用程序的简单遥测
- editorconfig-lint:符合 editorconfig 的 Lint 代码
- php-cli-tools:一系列可帮助PHP命令行实用程序的工具
- homelab:Matt Layher机器的配置管理。 麻省理工学院许可
- coffemud-mapper:CoffeeMud映射器
- 毕业设计&课设--毕业设计选题系统.zip
- 半导体国产替代系列十二:5G浪潮来袭,滤波器需求与替代的成长旋律-200221.rar
- smartcrop-sharp:通过SharplibVips使用Smartcrop的节点模块
- Pyro4:Pyro 4.x-Python远程对象
- mucahitsaratar.github.io
- apigeeOrgAdmin:用于管理 Apigee 组织
- Excel模板财务收支表87.zip