本文へスキップ
ウェブエンジニア問題集

BOOK / 全12章

SQLite入門 — サーバー不要のデータベースを実務で使う

SQLiteの仕組み、sqlite3コマンド、型親和性とSTRICTテーブル、WALモード、インデックス、node:sqliteによるNode.js連携、FTS5全文検索、sqlite-vecによるベクトル検索、Turso・Cloudflare D1でのエッジ利用まで、ファイル1つで動くデータベースを実務で使うための教科書です。

12

章

139分

読了目安

0円

すべて無料

目次(全12章)

  1. 01
    SQLiteとは何か — サーバー不要のデータベースの仕組みと使いどころ
    約10分
  2. 02
    sqlite3コマンドの使い方 — .tables・.schema・.mode・.importを覚える
    約10分
  3. 03
    SQLiteの型は緩い — 型親和性(TYPE AFFINITY)とSTRICTテーブル
    約12分
  4. 04
    テーブル作成とrowid — AUTOINCREMENT・主キー・制約の基本
    約12分
  5. 05
    SQLiteのSQL方言 — UPSERT・RETURNING・JSON関数・ALTER TABLE
    約14分
  6. 06
    トランザクションとWALモード — SQLITE_BUSYが出る理由と対策
    約13分
  7. 07
    SQLiteのインデックスとEXPLAIN QUERY PLANの読み方
    約12分
  8. 08
    Node.jsでSQLiteを使う — node:sqlite・better-sqlite3・Prisma・Drizzle
    約11分
  9. 09
    FTS5でSQLiteに全文検索を実装する
    約10分
  10. 10
    sqlite-vecでベクトル検索 — ローカルRAGとAIエージェントのメモリ
    約12分
  11. 11
    SQLiteの運用 — バックアップ・VACUUM・PRAGMA設定
    約11分
  12. 12
    Turso・libSQL・Cloudflare D1 — エッジとlocal-firstでSQLiteを使う
    約12分

この本で学べること

本書は、サーバー不要で動くデータベース「SQLite」を実務で使うための教科書です。SQLiteが1ファイルで完結する仕組みから始まり、sqlite3コマンドの操作、SQLite特有の型親和性とSTRICTテーブル、rowid、UPSERTやRETURNINGといった方言、WALモードとSQLITE_BUSY、インデックスとEXPLAIN QUERY PLANまでを解説します。さらにNode.js標準のnode:sqliteモジュールによる実装、FTS5の全文検索、sqlite-vecによるベクトル検索、Turso・libSQL・Cloudflare D1を使ったエッジ環境での運用まで扱います。

なぜ学ぶべきか

SQLiteは「学習用の簡易DB」という位置づけから変わりつつあります。Node.jsに標準モジュールとして組み込まれたことで導入コストがほぼゼロになり、TursoやCloudflare D1といったサービスによってエッジ環境や本番環境での採用例も増えました。テスト用のDB、CLIツール、デスクトップアプリ、local-firstなWebアプリ、AIエージェントのローカルメモリなど、活躍する場面は広がっています。SQLiteの得意・不得意を理解しておくと、「ここはPostgreSQLを立てるまでもない」という判断が自信を持ってできるようになります。

前提知識

SELECT・WHERE・JOINなど基本的なSQLがわかっていると読み進めやすくなります。不安がある場合は先に「SQLとデータベースの基礎」を読んでください。本書はSQL文法そのものではなく、SQLite固有の仕組みと運用に絞って解説します。

学習トピック

SQLiteの仕組みと基本操作

サーバーが不要な理由、1ファイルで完結する構造、sqlite3コマンドによるテーブル確認やCSVインポートを学びます。

型親和性・rowid・SQL方言

SQLiteに厳密な型がない理由とSTRICTテーブル、rowidとAUTOINCREMENT、UPSERT・RETURNING・JSON関数といった固有の書き方を理解します。

WALモード・トランザクション・インデックス

WALモードとロールバックジャーナルの違い、SQLITE_BUSYが出る理由と対策、EXPLAIN QUERY PLANの読み方を押さえます。

Node.js連携・全文検索・ベクトル検索

node:sqliteによる実装、better-sqlite3やPrisma・Drizzleとの使い分け、FTS5の全文検索、sqlite-vecによるローカルRAGを扱います。

運用とエッジ・local-first

バックアップ・VACUUM・PRAGMA設定に加え、Turso・libSQLの埋め込みレプリカやCloudflare D1での本番採用の判断基準を学びます。

こんな方におすすめ

  • SQLの基本は学んだが、実際にDBを動かして試したい方
  • テストやCLIツール向けに手軽なデータベースを探している方
  • Node.jsアプリでSQLiteを使いたいバックエンドエンジニア
  • Turso・Cloudflare D1などエッジDBの選択肢を検討している方
  • ローカルRAGやAIエージェントのデータ保存先を検討している方

よくある質問

SQLiteは本番環境で使ってもいいのですか?
読み取りが中心のアプリ、テナントごとにDBを分ける構成、エッジ環境などでは十分に実用的です。一方で書き込みが同時多発するワークロードは苦手で、SQLiteは書き込みを1つずつ処理する設計になっています。本書の最終章で、採用してよい場面と避けるべき場面を具体的に整理します。
MySQLやPostgreSQLとの違いは何ですか?
最大の違いは「サーバープロセスが存在しない」点です。MySQLやPostgreSQLはDBサーバーに接続して使いますが、SQLiteはアプリケーションに組み込まれたライブラリがファイルを直接読み書きします。そのため接続設定や運用作業が大幅に減る一方、同時書き込みやユーザー権限管理には制約があります。
SQLの基本を知らなくても読めますか?
本書はSQLite固有の話題に絞っているため、SELECTやJOINの書き方は別途「SQLとデータベースの基礎」で学ぶことをおすすめします。逆にSQLの基本を知っている方は、本書だけでSQLiteの実務知識を補完できます。
Node.jsからSQLiteを使うには何をインストールすればいいですか?
近年のNode.jsには標準でnode:sqliteモジュールが同梱されているため、多くの場合は追加インストールなしで使えます。本書では標準モジュールを主軸に解説しつつ、better-sqlite3やPrisma・Drizzleを選ぶべき場面も比較します。安定度はNode.jsのバージョンによって異なるため、利用前に公式ドキュメントで確認してください。