Python操作MySQL:pymsql与SQLAlchemy详解
41 浏览量
更新于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的交互。
2022-05-30 上传
2020-09-09 上传
2020-09-09 上传
2020-12-20 上传
2022-09-23 上传
2024-01-29 上传
2020-09-10 上传
2017-08-30 上传
2019-01-14 上传
weixin_38713057
- 粉丝: 3
- 资源: 946
最新资源
- pandas_func-0.1.tar.gz
- HMtools:水文模拟的一些工具
- 愤怒:针对JVM语言的新构建工具
- MyFirstApp
- EdgeLedger-website:响应式博客网站,是有关Udemy课程的一部分。 (HTML,CSS,JavaScript,Lightbox2,jQuery)
- pandas_gdc_agent-0.0.3.tar.gz
- Input Templates for Chrome-crx插件
- 记事本
- TTKOCR:OCR识别图片以及PDF中的文字,基于Windows和Linux的Qt
- inactivo-开源
- TICQLib-开源
- 实用的Python编程(@dabeaz的课程)-Python开发
- pandas_gdc_agent-0.0.2.tar.gz
- CatalystOne.93z8ql9mvz.gaVW3jf
- featran:一个用于数据科学和机器学习的Scala功能转换库
- Scribo Pronto-crx插件