📜  python 在内存中创建 sqlite db - Python (1)

📅  最后修改于: 2023-12-03 15:19:08.309000             🧑  作者: Mango

Python 在内存中创建 SQLite 数据库

在 Python 中,我们可以使用内存中的 SQLite 数据库,无需磁盘 I/O 操作,从而获得更快的执行速度和更高的灵活性。本文将介绍如何使用 Python 在内存中创建 SQLite 数据库。

安装 SQLite 库

在开始之前,我们首先需要安装 SQLite 库。在 Ubuntu 系统中,可以使用以下命令进行安装:

sudo apt-get install sqlite3

在 Windows 系统中,可以从 SQLite 官方网站下载预编译的二进制文件进行安装。

创建内存中的 SQLite 数据库

在 Python 中,我们可以使用 sqlite3 模块来创建和操作 SQLite 数据库。我们可以使用内存中的数据库,通过 :memory: 作为连接字符串即可。

import sqlite3

# 创建一个内存中的数据库连接
conn = sqlite3.connect(':memory:')

# 创建一个游标对象
cursor = conn.cursor()

# 执行 SQL 语句
create_table_sql = '''
CREATE TABLE users (
    id INTEGER PRIMARY KEY,
    name TEXT NOT NULL,
    age INTEGER NOT NULL
);
'''
cursor.execute(create_table_sql)

# 提交事务
conn.commit()

# 关闭连接
conn.close()

在上面的例子中,我们首先创建了一个内存中的数据库连接,然后通过连接创建了一个游标对象,接着执行了一个 SQL 语句用于创建表结构,最后提交了事务并关闭了连接。

插入数据

在创建完表结构后,我们可以向其中插入一些数据。以下是一个基本的插入数据的示例:

import sqlite3

# 创建一个内存中的数据库连接
conn = sqlite3.connect(':memory:')

# 创建一个游标对象
cursor = conn.cursor()

# 执行 SQL 语句
create_table_sql = '''
CREATE TABLE users (
    id INTEGER PRIMARY KEY,
    name TEXT NOT NULL,
    age INTEGER NOT NULL
);
'''
cursor.execute(create_table_sql)

# 插入数据
insert_sql = '''
INSERT INTO users (name, age) VALUES (?, ?);
'''
cursor.execute(insert_sql, ('John', 25))
cursor.execute(insert_sql, ('Jane', 30))

# 提交事务
conn.commit()

# 关闭连接
conn.close()

在上面的例子中,我们首先创建了一个内存中的数据库连接,然后通过连接创建了一个游标对象,接着执行了一个 SQL 语句用于创建表结构,然后向表中插入了两条数据,最后提交了事务并关闭了连接。

查询数据

在插入数据后,我们可以进行查询操作。以下是一个基本的查询数据的示例:

import sqlite3

# 创建一个内存中的数据库连接
conn = sqlite3.connect(':memory:')

# 创建一个游标对象
cursor = conn.cursor()

# 执行 SQL 语句
create_table_sql = '''
CREATE TABLE users (
    id INTEGER PRIMARY KEY,
    name TEXT NOT NULL,
    age INTEGER NOT NULL
);
'''
cursor.execute(create_table_sql)

# 插入数据
insert_sql = '''
INSERT INTO users (name, age) VALUES (?, ?);
'''
cursor.execute(insert_sql, ('John', 25))
cursor.execute(insert_sql, ('Jane', 30))

# 查询数据
select_sql = '''
SELECT * FROM users WHERE age > ?;
'''
cursor.execute(select_sql, (26,))
result = cursor.fetchall()
print(result)

# 关闭连接
conn.close()

在上面的例子中,我们首先创建了一个内存中的数据库连接,然后通过连接创建了一个游标对象,接着执行了一个 SQL 语句用于创建表结构,然后向表中插入了两条数据,接着查询了年龄大于 26 的所有用户数据,并将结果打印出来,最后关闭了连接。

总结

通过内存中的 SQLite 数据库,我们可以获得更快的执行速度和更高的灵活性。Python 的 sqlite3 模块提供了较为完整的对 SQLite 数据库的支持,可以极大地简化我们的开发工作。