【无标题】

嗨,大家好,我是兰若姐姐。今天给大家说下如何创建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 数据库时,你不需要担心账号和密码的问题。这种方式适合于开发和测试环境,是一个临时的、私有的数据存储空间。

相关推荐
MXsoft6186 分钟前
数据中心服务器与存储运维的深度实践与挑战
数据库
AI让世界更懂你23 分钟前
漫谈设计模式 [5]:建造者模式
python·设计模式·建造者模式
FutureUniant42 分钟前
GitHub每日最火火火项目(9.13)
人工智能·python·计算机视觉·github·音视频
Fireworkitte42 分钟前
MySQL常用的函数
数据库·mysql
liuzhenghua661 小时前
python运维
运维·开发语言·python
学java的小菜鸟啊1 小时前
Java队列详细解释
java·开发语言·经验分享·python
qq_200337391 小时前
可以从以下几个方面判断一个 SQL 查询是否需要优化:
数据库
乐容1 小时前
14,子查询语句嵌套
数据库
ac-er88881 小时前
什么是Flask-WTF
后端·python·flask
cyt涛1 小时前
Redis访问工具
数据库·redis·spring cache·注解·客户端·lettuce·redistemplae