Python操作MySQL:pymysql与sqlalchemy实战指南
160 浏览量
更新于2024-09-03
收藏 167KB PDF 举报
本文主要讲解了Python中对MySQL数据库进行操作的两种常见方法,即使用pymysql和sqlalchemy库。通过实例展示了如何创建、查看、修改和删除表,以及如何插入、查看、修改和删除数据。文章还包含了对pymysql安装及基本使用的介绍。
在Python中操作MySQL数据库,pymysql是一个常用的选择,它提供了类似命令行的交互方式。首先,确保已安装pymysql库,可以通过pip3 install pymysql进行安装。使用pymysql时,需要导入模块,然后建立与数据库的连接,如`pymysql.connect(host="localhost", port=3306, user='root', passwd='123456', db='python_test', charset='utf8')`。接着,创建游标对象,它是执行SQL语句和处理查询结果的关键。执行SQL语句使用`cursor.execute(SQL语句)`,如果涉及数据的增删改,需要调用`commit()`来提交事务,或`rollback()`来撤销操作。
对于数据操作,`execute()`函数可以处理单条SQL语句,而`executemany()`则用于一次性执行多条SQL语句,接收一个SQL语句和一组参数列表。例如,插入多条数据时,可以使用如下格式:`cursor.executemany("INSERT INTO table_name VALUES (%s, %s)", [(value1, value2), (value3, value4), ...])`。
另外,sqlalchemy是一个更高级的ORM(对象关系映射)库,它可以将Python类与数据库表对应,使得操作数据库更加方便。使用sqlalchemy,首先需要创建Engine对象,表示与数据库的连接,如`from sqlalchemy import create_engine; engine = create_engine('mysql+pymysql://root:123456@localhost/python_test')`。然后,定义Python类来映射数据库表,使用`declarative_base()`创建基类,并定义类属性作为列名。例如:
```python
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String(50))
email = Column(String(120))
```
接着,使用Session对象来执行数据库操作,如创建会话`session = Session(bind=engine)`,并进行增删查改。例如,插入数据:
```python
new_user = User(id=1, name='John Doe', email='john@example.com')
session.add(new_user)
session.commit()
```
sqlalchemy提供了面向对象的方式来操作数据库,使得代码更易读、维护性更强。
pymysql适合于简单的数据库操作,而sqlalchemy更适合于复杂的业务逻辑,且具有更好的数据库抽象层。根据项目需求,开发者可以选择适合自己的方式来与MySQL数据库进行交互。
2024-07-05 上传
2022-03-05 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
weixin_38704156
- 粉丝: 6
- 资源: 909
最新资源
- 黑板风格计算机毕业答辩PPT模板下载
- CodeSandbox实现ListView快速创建指南
- Node.js脚本实现WXR文件到Postgres数据库帖子导入
- 清新简约创意三角毕业论文答辩PPT模板
- DISCORD-JS-CRUD:提升 Discord 机器人开发体验
- Node.js v4.3.2版本Linux ARM64平台运行时环境发布
- SQLight:C++11编写的轻量级MySQL客户端
- 计算机专业毕业论文答辩PPT模板
- Wireshark网络抓包工具的使用与数据包解析
- Wild Match Map: JavaScript中实现通配符映射与事件绑定
- 毕业答辩利器:蝶恋花毕业设计PPT模板
- Node.js深度解析:高性能Web服务器与实时应用构建
- 掌握深度图技术:游戏开发中的绚丽应用案例
- Dart语言的HTTP扩展包功能详解
- MoonMaker: 投资组合加固神器,助力$GME投资者登月
- 计算机毕业设计答辩PPT模板下载