【无标题】

嗨,大家好,我是兰若姐姐。今天给大家说下如何创建SQLite 数据库连接,并将数据库存储在内存中,这是一种临时的、私有的数据存储空间,一般用于以下情形:

什么都不说,先上代码:

bash 复制代码
import sqlite3

创建数据库连接

bash 复制代码
conn = sqlite3.connect(':memory:')

cursor = conn.cursor()

描述数据库表结构

python 复制代码
database_schema_string = """

CREATE TABLE orders (

id INT PRIMARY KEY NOT NULL, -- 主键,不允许为空

customer_id INT NOT NULL, -- 客户ID,不允许为空

product_id STR NOT NULL, -- 产品ID,不允许为空

price DECIMAL(10,2) NOT NULL, -- 价格,不允许为空

status INT NOT NULL, -- 订单状态,整数类型,不允许为空。0代表待支付,1代表已支付,2代表已退款

create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP, -- 创建时间,默认为当前时间

pay_time TIMESTAMP -- 支付时间,可以为空

);

创建orders表

bash 复制代码
cursor.execute(database_schema_string)

插入5条明确的模拟记录

bash 复制代码
mock_data = [

(1, 1001, 'TSHIRT_1', 50.00, 0, '2023-09-12 10:00:00', None),

(2, 1001, 'TSHIRT_2', 75.50, 1, '2023-09-16 11:00:00', '2023-08-16 12:00:00'),

(3, 1002, 'SHOES_X2', 25.25, 2, '2023-10-17 12:30:00', '2023-08-17 13:00:00'),

(4, 1003, 'SHOES_X2', 25.25, 1, '2023-10-17 12:30:00', '2023-08-17 13:00:00'),

(5, 1003, 'HAT_Z112', 60.75, 1, '2023-10-20 14:00:00', '2023-08-20 15:00:00'),

(6, 1002, 'WATCH_X001', 90.00, 0, '2023-10-28 16:00:00', None)

]

for record in mock_data:

cursor.execute('''

INSERT INTO orders (id, customer_id, product_id, price, status, create_time, pay_time)

VALUES (?, ?, ?, ?, ?, ?, ?)

''', record)

提交事务

bash 复制代码
conn.commit()

这样就在内存中的 SQLite 数据库,定义了一个名为 orders 的表,并插入了一些模拟的订单数据。这种方式通常用于测试或开发环境,因为内存数据库速度快且不需要管理磁盘文件

  1. 访问内存中的数据库:
  • 由于数据库存储在内存中,因此可以直接使用 sqlite3 模块提供的接口来访问和操作数据。

  • 我们创建了一个数据库连接 conn = sqlite3.connect(':memory:'),并获取了一个游标对象 cursor = conn.cursor()

  • 使用这个游标对象,我们就可以执行各种 SQL 查询和操作,例如 cursor.execute("SELECT * FROM orders") 来查询 orders 表中的所有数据。

  • 最后,记得在操作完成后调用 conn.commit() 提交更改,或 conn.rollback() 回滚更改。

  1. 无需账号密码:
  • 在使用 sqlite3.connect(':memory:') 创建内存数据库连接时,不需要指定任何账号和密码。

  • SQLite 是一种嵌入式数据库,它不需要独立的数据库服务器,也不需要用户认证。

  • 内存中的 SQLite 数据库是完全私有的,只能被当前运行的 Python 程序访问。没有其他用户或进程能访问这个数据库。

因此,在使用内存中的 SQLite 数据库时,你不需要担心账号和密码的问题。这种方式适合于开发和测试环境,是一个临时的、私有的数据存储空间。

相关推荐
微小冷2 分钟前
Python CasADi初步教程
python·控制·模型预测·casadi·符号表达式·sx
子非鱼a6 分钟前
【WEB】October 2019 Twice SQL Injection
数据库·sql
Elastic 中国社区官方博客9 分钟前
Elasticsearch:ES|QL 搜索教程
大数据·数据库·人工智能·sql·elasticsearch·搜索引擎·全文检索
喂自己代言13 分钟前
从 0.7 秒到 11 毫秒:OceanBase 一条慢 SQL 的三连坑优化实战
数据库·sql·oceanbase
cpolar技术支持18 分钟前
requirements.txt 能安装不等于安全:用 pip-audit 检查 Python 依赖,cpolar 临时分享脱敏报告
python·cpolar·requirements·依赖安全·pip-audit
xuefuhe23 分钟前
Oracle TDE
oracle
哈__27 分钟前
KES-Operator正式发布:基于Kubernetes的数据库集群云原生全生命周期管理方案
数据库·云原生·kubernetes
鸽芷咕28 分钟前
金仓KES向量数据库实战:一条SQL干掉ETL,机器人不再把停产货当现货卖
数据库·sql·etl
倍利福猎头公司官方账号36 分钟前
2026机器人猎头公司怎么选?收费标准与合作注意事项【HR版】
大数据·数据库·机器人·求职招聘·业界资讯
行业研究员37 分钟前
云原生数据库推荐排行与选型
数据库·云原生·云原生库