やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

SQLite3学習 ドットコマンドまとめ

 多すぎるのでまとめページを作った。

分類

I/O

ドットコマンド 概要
.backup, .clone, .save/
.restore
今のDBを別名コピーする /
今のDBを指定DBファイルと同一にする
.open DBファイルを開く(今開いているDBを閉じる)
.dump, .recover DB内容をSQL文で出力する
.read
(.mode, .separator)
SQL文やドットコマンドが書かれたファイルを読み込んで実行する
.import
(.mode, .separator)
CSV,TSVのようなDSVファイルからテーブル作成&レコード挿入する
.output
(.mode, .separator)
select結果を指定したファイルに出力する
.session insert,update,delete履歴を外部ファイル化。ただし取込方法不明
.log ログ出力制御

機能

ドットコマンド 概要
.archive SQLiteArchive圧縮形式ファイルの操作
.parameter パラメータ操作。SQL文内に変数を埋め込む
.testcase + .check | .selftest
.testctrl
テスト。出力の実測値と期待値が一致するか確認する
テストの設定(詳細不明)

SQL入出力形式設定

ドットコマンド 概要
.headers 列(カラム)を表示するか否か
.mode 出力形式の設定 一部入力形式にもなる
.separator 列と行のデリミタ
.nullvalue NULLの出力形式
.width .mode column時の表示幅
.binary バイナリ出力の是非(ON/OFFの違い不明)

シェル

ドットコマンド 概要
.cd カレントディレクトリ設定
.echo 実行したSQL文を出力するか否か
.exit 終了する。終了コードを設定可
.print 標準出力する
.prompt 対話モード時のsqlite>...>を変更する
.quit 終了する
.shell, .system 指定したシェルコマンドを実行する
.timeout ロック時のタイムアウト時間を設定
.timer 対話モード時、SQL文実行時間を出力

外部アプリ連携

ドットコマンド 概要
.excel 表計算アプリを起動する。次の文の実行結果を渡す。
.once 次の実行結果を指定した出力先へ渡す。
出力先は次のいずれか(テキストエディタ表計算アプリ、ファイル、パイプコマンド)

メタデータ表示

メタデータ表示(sqlite3バイナリ)

ドットコマンド 概要
.help ヘルプ
.sha3sum DBファイルのハッシュ値算出。
.stats DBSTAT仮想テーブルの有効化

メタデータ表示(DBファイル)

ドットコマンド 概要
.dbconfig 外部キーを有効化したりできる
.dbinfo DB情報の表示
.indexes インデックス名一覧
.limit 制限とその設定。
.lint 潜在的スキーマの問題を報告する
.show 設定の表示。ヘッダのON/OFF設定など。
.vfsinfo 仮想ファイルシステムの情報を表示する
.vfslist 仮想ファイルシステム一覧
.vfsname VFSスタックの名前を出力する。(意味不明)

メタデータ表示(SQL

ドットコマンド 概要
.databases attachで接続中のDBを一覧する
.fullschema create文出力。.schemaとの違い不明
.schema create文を出力する
.tables テーブル名一覧

メタデータ表示(SQL実行時)

ドットコマンド 概要
.changes 直前のSQLで変更された行数を表示する
.trace 実行したSQL文を出力する .echoの詳細版?

パフォーマンス確認

ドットコマンド 概要
.eqp クエリプラン機能の有効化
.expert インデックスを提案してくれる
.imposter 分析とデバッグのみを目的としたテーブルを作成するコマンド
.scanstats パフォーマンス情報の取得。コンパイルオプション必須。

(不明)

ドットコマンド 概要
.auth 認証。ググってみたが情報もなく難しそうで効果も低そうなので諦める。
.bail 何の役に立つのかわからなかった
.filectrl データベースファイルの低レベル制御
.progress 不明

一覧

対象環境

$ uname -a
Linux raspberrypi 4.19.42-v7+ #1218 SMP Tue May 14 00:48:17 BST 2019 armv7l GNU/Linux

前回まで