sql.jsでデータベースからクエリ実行する最小サンプル

2021/06/18

sql.js を使って、自分の SQLite データベースの中身を任意のクエリを実行する最小サンプルです。sql.js.org のサンプルをベースに動くようなHTMLに調整しただけのものになります。CDN版を使っているので、以下をコピーして、sqlFilePath 変数の中身を自分の SQLite ファイルのパスに変更し、query 変数の中身をお好きなクエリに変更すれば動作すると思います。

<meta charset="utf8" />
<html>
<script src='https://cdnjs.cloudflare.com/ajax/libs/sql.js/1.5.0/sql-wasm.js'></script>
<script>
  async function start() {
    const sqlPromise = initSqlJs({
      locateFile: file => `https://cdnjs.cloudflare.com/ajax/libs/sql.js/1.5.0/${file}`
    });

    let sqlFilePath = "/database/mydb.sqlite";
    const dataPromise = fetch(sqlFilePath).then(res => res.arrayBuffer());
    const [SQL, buf] = await Promise.all([sqlPromise, dataPromise]);
    const db = new SQL.Database(new Uint8Array(buf));
    let query = "SELECT * FROM mytable";
    let contents = db.exec(query);
    console.log(contents);
  }
  start();

</script>

<body>
  Output is in Javascript console
</body>

</html>

最初は少し面倒そうだなぁという印象でしたが、実際はとても簡単に使うことができました。とても便利です。


  このエントリーをはてなブックマークに追加  

<<「Web 開発」の記事一覧に戻る

関連記事