【无标题】

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

相关推荐
开开心心就好1 小时前
高效报价软件,简化商铺定价流程
服务器·数据库·安全·面试·职场和发展·电脑·symfony
冬天给予的预感2 小时前
DAY 54 Inception网络及其思考
网络·python·深度学习
钢铁男儿2 小时前
PyQt5高级界而控件(容器:装载更多的控件QDockWidget)
数据库·python·qt
阿蒙Amon5 小时前
C# Linq to SQL:数据库编程的解决方案
数据库·c#·linq
亿牛云爬虫专家6 小时前
Kubernetes下的分布式采集系统设计与实战:趋势监测失效引发的架构进化
分布式·python·架构·kubernetes·爬虫代理·监测·采集
互联网搬砖老肖9 小时前
运维打铁: MongoDB 数据库集群搭建与管理
运维·数据库·mongodb
典学长编程9 小时前
数据库Oracle从入门到精通!第四天(并发、锁、视图)
数据库·oracle
蹦蹦跳跳真可爱58910 小时前
Python----OpenCV(图像増强——高通滤波(索贝尔算子、沙尔算子、拉普拉斯算子),图像浮雕与特效处理)
人工智能·python·opencv·计算机视觉
nananaij10 小时前
【Python进阶篇 面向对象程序设计(3) 继承】
开发语言·python·神经网络·pycharm
雷羿 LexChien10 小时前
从 Prompt 管理到人格稳定:探索 Cursor AI 编辑器如何赋能 Prompt 工程与人格风格设计(上)
人工智能·python·llm·编辑器·prompt