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. 05Drift テーブルの例

活用シーン

  1. 01SQLite でアプリの設定を保存
  2. 02単一の SQLite ファイルにユーザーデータを格納
  3. 03Drift プロジェクトでキーと値のクエリを使用

インストール

コマンドをコピーしてターミナルで実行します。

$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 を使ってキー・バリューを保存すれば、ユーザーのデータすべてを 1 つのファイルにまとめ、他のデータベースにアタッチしたり、サーバーと同期したりできます。

テーブルを作成する

キー・バリュー形式のデータを保存するには、まずテーブルを作成する必要があります。

CREATE TABLE key_value (
  key TEXT NOT NULL PRIMARY KEY,
  value,
  UNIQUE(key)
);

キー

値

user_id

1

foo

bar

active

1

guest

0

SQLite には省略可能な列型があり、動的な値を扱う場合に非常に便利です。

値を保存する

指定したキーの値を保存するには、次のクエリを実行します。

INSERT OR REPLACE 
INTO key_value (key, value) 
VALUES (:key, :value)
RETURNING *;

キー

値

user_id

1

キーは一意なので、意図したとおりに値が上書きされ、競合を心配する必要はありません。

値を読み取る

値を読み取るには、クエリにキーを渡します。

SELECT value FROM key_value 
WHERE key = :key;

値

1

返されるのは値の列 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;

デモ

コメント