Python操作SQLite、MySQL与LMDB数据库指南
94 浏览量
更新于2024-08-29
收藏 86KB PDF 举报
本文主要介绍了如何使用Python操作SQLite、MySQL和LMDB这三种数据库的方法,适合需要进行数据库操作的Python开发者阅读。
在Python中,SQLite是一种常用的轻量级嵌入式数据库,它允许你在单个文件中存储数据。Python 2.5及以上版本已内置了SQLite3模块,可以通过`import sqlite3`直接使用。操作SQLite数据库的基本步骤包括:
1. 使用`sqlite3.open()`创建数据库连接对象`connection`。
2. 通过`connection.cursor()`创建游标对象`cursor`,用于执行SQL命令。
3. 使用`cursor.execute()`执行SQL语句,如创建表、插入数据、更新或删除记录。
4. 数据修改后,调用`connection.commit()`提交事务。
5. 查询数据时,利用`cursor.fetchall()`获取所有查询结果。
6. 最后,通过`connection.close()`关闭数据库连接。
下面是一个简单的SQLite数据库操作示例,展示如何创建一个名为`test.db`的数据库,并建立一个名为`students`的表:
```python
import sqlite3
# 创建连接
conn = sqlite3.connect("test.db")
# 创建游标
cur = conn.cursor()
# 执行SQL语句(创建数据表)
cur.execute("CREATE TABLE IF NOT EXISTS students (sid INTEGER PRIMARY KEY, name TEXT)")
# 提交
conn.commit()
# 关闭连接
conn.close()
```
MySQL是另一种广泛使用的开源关系型数据库管理系统。Python连接MySQL通常使用`pymysql`或`mysql-connector-python`库。连接MySQL的步骤大致类似:
1. 导入库,如`import pymysql`。
2. 创建连接,`conn = pymysql.connect(host='主机地址', user='用户名', password='密码', db='数据库名')`。
3. 创建游标,`cur = conn.cursor()`。
4. 使用`cursor.execute()`执行SQL语句。
5. 提交或回滚事务,`conn.commit()`或`conn.rollback()`。
6. 获取查询结果,`cur.fetchall()`。
7. 关闭连接,`conn.close()`。
而LMDB(Lightning Memory-Mapped Database)是一种高性能、低延迟的键值对存储系统,适用于大量数据的快速读写操作。Python操作LMDB可使用`lmdb`库。基本操作流程:
1. 导入`lmdb`库,`import lmdb`。
2. 打开数据库,`env = lmdb.open('db_path', map_size=1000000000)`,其中`map_size`指定内存映射大小。
3. 通过`with env.begin(write=True)`创建事务对象,`txn`。
4. 使用`txn.put(key, value)`存储键值对,`txn.get(key)`读取键对应的值。
5. 在`with`块外,事务会自动提交或回滚。
每个数据库都有其特点和适用场景。SQLite适合小型应用或本地存储,MySQL适用于需要网络连接的多用户应用,而LMDB则适用于对速度和内存效率有高要求的场景。根据实际需求选择合适的数据库并掌握相应的Python操作方法,是开发中的重要技能。
128 浏览量
477 浏览量
173 浏览量
150 浏览量
917 浏览量
102 浏览量
2024-07-07 上传
138 浏览量
661 浏览量
weixin_38627213
- 粉丝: 1
- 资源: 972
最新资源
- 数据结构(c++版)
- Keil C51使用详解
- 3D论文-A Generic Framework for Efficient 2-D and 3-D Facial Expression Analogy
- 楼房销售论文.doc
- WebLogic Web Development
- The C Programming Language
- 一个RMI的分布式应用的实例
- 很好看的一个js的小日历
- Turbo C 屏幕函数
- ArcGIS9.3新特性
- CHD372中文资料
- C语言100例(精髓)
- 附录B Phase1-Phase2-Phase2+之间的差异
- ext中文手册(ext教程)
- 常用功能的测试方法-告诉你如何测试界面、功能、安装测试等
- 跟我一起写Makefile