Python操作SQLite/MySQL/LMDB数据库详解

0 下载量 162 浏览量 更新于2024-08-31 收藏 84KB PDF 举报
"这篇文章主要介绍了如何使用Python来操作SQLite、MySQL和LMDB这三种不同的数据库系统,适合初学者和需要复习这些技术的开发者。作者在Windows 7环境下使用Python 3.5.2进行演示,并提供了详细的步骤和实例代码。" 在Python中,SQLite是一种常用的轻量级数据库,其数据库文件可以直接作为存储介质。自Python 2.5版本起,SQLite3被内置到标准库中,使用非常方便。要操作SQLite,首先需要`import sqlite3`,然后调用`sqlite3.connect()`方法建立与数据库文件的连接。连接对象上有一个`cursor()`方法,用于创建游标,通过游标执行SQL语句。执行增删改操作后,需调用`connection.commit()`来提交事务,而查询操作则可以通过`cursor.fetchall()`获取结果。最后,别忘了用`connection.close()`关闭连接,确保资源的正确释放。 例如,创建一个名为"test.db"的SQLite数据库并建立一个名为"students"的表,可以这样编写Python代码: ```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() ``` 接下来是MySQL,它是一种关系型数据库管理系统,通常用于处理大量数据。Python中常用`pymysql`或`mysql-connector-python`库来操作MySQL。与SQLite类似,你需要连接数据库,创建游标,执行SQL,提交事务,获取结果,然后关闭连接。但具体API和语法会有所不同,比如在MySQL中,创建表的SQL语句可能如下: ```python import pymysql # 创建连接 conn = pymysql.connect(host='localhost', user='root', password='your_password', db='your_database') # 创建游标 cur = conn.cursor() # 执行SQL语句(创建表) cur.execute("CREATE TABLE IF NOT EXISTS students (sid INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255))") # 提交 conn.commit() # 关闭连接 conn.close() ``` 最后,LMDB(Lightning Memory-Mapped Database)是一种内存映射文件数据库,适用于高速、低延迟的数据存储。Python中可以使用`lmdb`库来操作LMDB。它的操作方式与前两者略有不同,因为LMDB是键值对存储,所以操作更直接。例如,打开数据库并写入一条数据: ```python import lmdb # 打开数据库 env = lmdb.open('test.lmdb', map_size=1024 * 1024 * 1024) # 设置数据库大小 with env.begin(write=True) as txn: # 写入数据 txn.put(b'student1', b'John Doe') ``` 以上就是Python操作SQLite、MySQL和LMDB数据库的基本方法。每种数据库都有其特定的应用场景和优势,根据项目需求选择合适的数据库并掌握其操作技巧,是每个Python开发者必备的技能。