Python操作MySQL:pymysql与sqlalchemy实战指南
12 浏览量
更新于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
最新资源
- OptiX传输试题与SDH基础知识
- C++Builder函数详解与应用
- Linux shell (bash) 文件与字符串比较运算符详解
- Adam Gawne-Cain解读英文版WKT格式与常见投影标准
- dos命令详解:基础操作与网络测试必备
- Windows 蓝屏代码解析与处理指南
- PSoC CY8C24533在电动自行车控制器设计中的应用
- PHP整合FCKeditor网页编辑器教程
- Java Swing计算器源码示例:初学者入门教程
- Eclipse平台上的可视化开发:使用VEP与SWT
- 软件工程CASE工具实践指南
- AIX LVM详解:网络存储架构与管理
- 递归算法解析:文件系统、XML与树图
- 使用Struts2与MySQL构建Web登录验证教程
- PHP5 CLI模式:用PHP编写Shell脚本教程
- MyBatis与Spring完美整合:1.0.0-RC3详解