mcpField
U
using-sqlite-as-a-key-value-store

using-sqlite-as-a-key-value-store

github.com/rodydavis数据与数据库6044 次安装2 周前更新
代码仓库

关于 using-sqlite-as-a-key-value-store

这份实用指南面向希望用 SQLite 存储非关系型键值数据的开发者,演示建表以及保存、读取、删除和搜索数据,并提供 Drift 示例。

主要功能

  1. 01创建键值表
  2. 02插入或替换数据
  3. 03读取和删除条目
  4. 04搜索键及字符串值
  5. 05展示 Drift 表支持

适用场景

  1. 01在 SQLite 中保存应用设置
  2. 02将用户数据存放在单个 SQLite 文件中
  3. 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