(ブラウザの)JavaScript 上で動くリレーショナルデータベース:『JSDB(じぇいえすでーびー)』なるものを作ってみました:
https://github.com/dotnsf/jsdb


jsdb.js をダウンロードして、HTML 内に 
<script src="./jsdb.js"></script>

と記述するだけで、そのページ内の JavaScript で使えるようになります。インターネットに接続された環境であればダウンロードしなくても、
<script src="https://dotnsf.github.io/jsdb/jsdb.js"></script>

と記述すれば使えます。なおデータはブラウザ内の IndexedDB に格納されるので、同じ PC の同じブラウザからアクセスすれば(毎回データを入力するのではなく)データを永続化できます。

詳しくは GitHub リポジトリの README.md を見ていただきたいのですが、簡単な使い方としては以下の流れになります:

(1)const db = new JSDB( "dbname" ); で指定した名称のデータベースを開き(存在しない場合は作成してから開き)、
(2)const result = await db.execute( "(SQL文)" ); で SQL を実行する


SQL は "create table" でテーブルを作り、"select from (table)", "insert into (table)", "update (table)", "delete from (table)" が使えたり、"alter table" で列を追加したり、不要であれば "drop table (table)" も実行できます。

またテーブル内で利用できる列型は INTEGER, REAL, TEXT, DATE, DATETIME, BLOB と一通りサポートしています。"PRIMARY KEY" や "NOT NULL", "UNIQUE", "DEFAULT" といった属性も指定できます。

SQL 文もプレースホルダー対応やバルクインサート、集約関数(count, sum, avg, min, max)、カラムエイリアスも使えます。SELECT 文では ORDER BY, GROUP BY, HAVING, LIMIT, LIKE などの指定も可能です。なおデータのエンコードは UTF-8 です。

実際に JSDB が使えるデモサイトも用意してみました:
https://dotnsf.github.io/jsdb/examples/demo.html

2026060401


ウェブブラウザで上記 URL にアクセスすると上図のような画面が表示されます。この画面が SQL エディタになっていて、ここに SQL を記述して「実行」ボタンを押すとその SQL が実行される。というものです。

画面を下の方にスクロールするとクリックするだけで SQL エディタに転送されるサンプルの SQL が用意されています。なおこの URL にアクセスした時点で既に DB は作成されいるので、"CREATE TABLE" から始めて、"INSERT TABLE" でデータを投入して、"SELECT FROM TABLE" で格納されたデータを確認して、、といった一連の動作を確認できます。プレースホルダーを使って SQL を実行する場合は「パラメータ(オプション)」と書かれた箇所にデータを入れて実行してください:
2026060402


繰り返しになりますが、データはブラウザ内の IndexedDB 内に格納されるため、再度同じページを開くと、先ほどまでに作成したテーブルやデータが残った状態から始めることができます(なので同じ名前のテーブルを CREATE すると二重登録エラーになります)。


今(2026-06-04)の時点で未実装な機能としては JOIN やサブクエリー、そしてトランザクションあたりですが、JavaScript 内で使う DB にそこまで必要なのだろうか・・・(自分はあまり使わないなあ・・・と思ったので未実装) という言い訳で実装を避けてます。必要なら issues などでリクエストしてください。


自分で使うつもりで作ってみましたが、意外と自分の需要がない(苦笑)。 フロントエンドで一時的にデータベースで集計したい時などに使えるんじゃないかと思ってます。よかったら使ってみてください。