python如何创建SQLite 数据库连接,如何将数据库存储在内存中?

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

什么都不说,先上代码:

import sqlite3

创建数据库连接

conn = sqlite3.connect(':memory:')

cursor = conn.cursor()

描述数据库表结构

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表

cursor.execute(database_schema_string)

插入5条明确的模拟记录

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)

提交事务

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. 数据内存存储

    2024-07-17 12:08:03       54 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-17 12:08:03       67 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-17 12:08:03       72 阅读
  3. 在Django里面运行非项目文件

    2024-07-17 12:08:03       58 阅读
  4. Python语言-面向对象

    2024-07-17 12:08:03       69 阅读

热门阅读

  1. 跟ChatGPT学习go语言-float64转成int

    2024-07-17 12:08:03       22 阅读
  2. Redis--布隆过滤器

    2024-07-17 12:08:03       22 阅读
  3. geometry_msgs

    2024-07-17 12:08:03       22 阅读
  4. c语言(7.15)

    2024-07-17 12:08:03       20 阅读
  5. 如何解决隐藏游戏服务器的源IP问题

    2024-07-17 12:08:03       22 阅读
  6. Python中的条件语句与三元运算符

    2024-07-17 12:08:03       24 阅读
  7. 计算机网络 VPN技术

    2024-07-17 12:08:03       19 阅读
  8. Hbase、hive以及ClickHouse的区别?

    2024-07-17 12:08:03       25 阅读
  9. electron中app.whenReady()和app.on(‘ready‘)的区别

    2024-07-17 12:08:03       22 阅读
  10. Scikit-Learn 基础教程

    2024-07-17 12:08:03       22 阅读
  11. 八部金刚功1.0.9-july 17th-冥想1.1.7

    2024-07-17 12:08:03       25 阅读