SQLite データベース検査

SQLite 3 ファイルのページサイズ、エンコーディング、ヘッダーフィールドを読み取り、テーブル、インデックス、ビュー、トリガーを特定する可視の CREATE 文を探します。

ブラウザ内でローカルに実行
このツールの処理はすべてブラウザ内で行われます。VoriTools が入力内容をアップロード・保存したり、外部 API に送信したりすることはありません。
SQLite データベースファイルChoose a local SQLite 3 file.
データベースヘッダー

    SQLite データベースを検査する方法

    このページはローカルの SQLite 3 ファイルをブラウザ内で開き、ファイル自身が持つ情報を表示します。データベースヘッダーと、SQLite がテーブル・インデックス・ビュー・トリガーを格納する sqlite_schema テーブルのエントリです。読み取りは FileReader API で行うため、アップロードもクエリの実行もありません。

    ボタンで .sqlite / .db / .sqlite3 ファイルを選択してください。ヘッダーは JSON レポートとして、スキーマオブジェクトは表として表示され、クリアでページからファイルを外します。行データは開かず、ページ 1 とスキーマのページだけを読み取ります。

    1. 「ローカルファイルを選択」を押して、調べたい .sqlite / .db / .sqlite3 ファイルを選びます。
    2. ヘッダーレポートを確認します:ファイル名、バイト数、ページサイズ、ページ数、書き込み・読み取りフォーマット版、テキストエンコーディング、スキーマフォーマット、application id。
    3. スキーマの表を確認します:オブジェクトごとに 1 行で、種類・名前・SQLite が保持しているままの CREATE 文が並びます。
    4. 指摘を確認します:スキーマが空の場合の説明と、sqlite_ で始まる内部オブジェクトの件数がここに出ます。
    5. 「クリア」を押すとページからファイルを外します。

    インスペクターが読み取る内容

    表示されるヘッダー

    ヘッダーレポートはファイル先頭 100 バイトを名前付きのフィールドとして示します。bytes はファイルサイズ、page_size はデータベースが宣言するページサイズ(値 1 は 65536 を意味します)、pages はファイルサイズをページサイズで割った数です。file_format_write_version と file_format_read_version はロールバックジャーナルのデータベースで 1、WAL のデータベースで 2 になり、text_encoding はヘッダーの記載どおり UTF-8 / UTF-16le / UTF-16be または "not declared" です。

    schema_format と application_id も同じヘッダーブロックから取得します。ファイルに入っている値そのままを数値で表示し、application id の意味を推測することはしません。

    スキーマオブジェクト

    表はページ 1 の sqlite_schema B ツリーから作成順に読み取り、SQL テキストはそのまま保持します。"user data" のような引用符付きの名前、非 ASCII の名前、複数行のトリガー本体も同様です。CHECK 句が 6 KB ある 130 列のテーブルは完全な形で表示され、400 個のオブジェクトを持つデータベースは 400 件すべてを一覧にしました。

    SQLite 自身が作成するオブジェクトも一覧に含まれます。UNIQUE 列は sqlite_autoindex_* インデックスを、AUTOINCREMENT は sqlite_sequence テーブルを生成します。内部オブジェクトの件数は指摘に表示されるので、自分のオブジェクトと取り違えることはありません。

    分からないこと

    読み取るのは選択したデータベースファイルだけです。WAL モードでは最新の変更が別の -wal ファイルに残っていることがあり、このページはその補助ファイルを読まないため、チェックポイント前の WAL セッションで作成したスキーマが表示されない場合があります。行データは決してデコードしないので、テーブルの中身の表示、整合性チェック、ファイルの修復はできません。

    SQLite format 3 のシグネチャで始まらないファイル、100 バイト未満のファイル、実現不可能なページサイズを宣言するヘッダーはメッセージ付きで拒否し、直前のレポートは消去して前のファイルの内容が残らないようにします。

    最近使ったツール: