关于 using-sqlite-as-a-key-value-store
这份实用指南面向希望用 SQLite 存储非关系型键值数据的开发者,演示建表以及保存、读取、删除和搜索数据,并提供 Drift 示例。
主要功能
- 01创建键值表
- 02插入或替换数据
- 03读取和删除条目
- 04搜索键及字符串值
- 05展示 Drift 表支持
适用场景
- 01在 SQLite 中保存应用设置
- 02将用户数据存放在单个 SQLite 文件中
- 03在 Drift 项目中使用键值查询
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ rodydavis/ skills --skill using-sqlite-as-a-key-value-store安装后在 Claude Code 中输入/using-sqlite-as-a-key-value-store确认已加载。
详细介绍
使用 SQLite 作为键值存储
SQLite 是一款功能强大的边缘数据库,可以存储各种形式的数据。
键值数据库常用于应用中存储设置和其他非关系型数据。
使用 SQLite 存储键值数据,可以将用户的所有数据保存在单个文件中,还可以将其附加到其他数据库,或将其同步到服务器。
创建表
要存储键值类型的数据,首先需要创建表。
CREATE TABLE key_value (
key TEXT NOT NULL PRIMARY KEY,
value,
UNIQUE(key)
);
键
值
用户_id
1
foo
bar
active
1
guest
0
SQLite 支持可选列类型,对于动态值非常有用。
保存值
要为指定的键保存值,可以运行以下语句:
INSERT OR REPLACE
INTO key_value (key, value)
VALUES (:key, :value)
RETURNING *;
键
值
用户_id
1
由于键是 UNIQUE,因此无需担心冲突,它会按预期覆盖原有值。
读取值
要读取值,可以在查询中传入一个键:
SELECT value FROM key_value
WHERE key = :key;
值
1
这只会返回一个值列,最多包含 1 行。
删除值
要删除值或键,可以运行以下语句:
DELETE FROM key_value
WHERE key = :key;
搜索键或值
还可以使用以下语句搜索指定的键或值(如果它是字符串):
SELECT key, value
FROM key_value
WHERE key LIKE :query
OR value LIKE :query;
键
值
bar
1
foo
bar
Drift 支持
如果你在 Dart 中使用 Drift,请新建文件 key_value.drift 并添加以下内容:
CREATE TABLE key_value (
"key" TEXT NOT NULL PRIMARY KEY,
value TEXT,
UNIQUE("key")
);
setItem:
INSERT OR REPLACE
INTO key_value ("key", value)
VALUES (:key, :value)
RETURNING *;
getItem:
SELECT value FROM key_value
WHERE "key" = :key;
deleteItem:
DELETE FROM key_value
WHERE "key" = :key;
searchItem:
SELECT "key", value
FROM key_value
WHERE "key" LIKE :query
OR value LIKE :query;
演示
评论
支持 Markdown