2016-10-02

sqlite3 のコマンド

SQLite は、パブリックドメインの軽量な関係データベース管理システム (RDBMS) です。他の多くの RDBMS がクライアント・サーバシステムで使用されるデータベースエンジンであるのに対し、SQLite はそうはなく、アプリケーションに組み込んで利用されます。Wikipedia の英語サイトの SQLite にある Notable users を見ると、意外と多くのアプリケーション、システムで SQLite が利用されていることに驚かされます。

そんな SQLite を扱う必要が出てきました。Java か Python から SQLite のデータベースへアクセスすることを想定していますが、なにかとデータベースの中身を確認したりする必要が出てくると考えられますので、SQLite というデータベースの特徴がどんなものかをまとめる前に、まずは SQLite に付属している、スタンドアロンのコマンドライン・プログラム sqlite3 で利用できるコマンドを確認しました。

動作環境は次の通りです。

  • OS: Fedora 24 (x86_64)
  • SQLite: sqlite-3.13.0-1.fc24.x86_64

端末エミュレータを起動して sqlite3 と入力して SQLite のコマンドライン・プログラムを実行します。.help を入力すれば用法(のヒント)が表示されるとあるので、その通りにやってみました。

$ sqlite3
SQLite version 3.13.0 2016-05-18 10:57:30
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite> .help
.auth ON|OFF           Show authorizer callbacks
.backup ?DB? FILE      Backup DB (default "main") to FILE
.bail on|off           Stop after hitting an error.  Default OFF
.binary on|off         Turn binary output on or off.  Default OFF
.changes on|off        Show number of rows changed by SQL
.clone NEWDB           Clone data into NEWDB from the existing database
.databases             List names and files of attached databases
.dbinfo ?DB?           Show status information about the database
...
...

コマンドの一覧がズラッと出てきますが、このままではなんだか使いづらいので、翻訳も兼ねて以下にまとめてみました。ただし、機能がよく判らなかったり確認できないものは無理して翻訳をせずにそのままにしてあります。ただし、後になって確認ができたものは、翻訳を加える可能性がありますので予めご了承ください。

sqlite3 のコマンド
Command Description
.auth ON|OFF Show authorizer callbacks
.backup ?DB? FILE データベース DB(デフォルトは "main")を FILE へバックアップ。
.bail on|off Stop after hitting an error. Default OFF
.binary on|off Turn binary output on or off. Default OFF
.changes on|off Show number of rows changed by SQL
.clone NEWDB Clone data into NEWDB from the existing database
.databases アタッチしているデータベースのテーブル名とファイル名を表示。
.dbinfo ?DB? データベースの現在の情報を表示。
.dump ?TABLE? ... SQL 形式のテキストフォーマットでデータベースをダンプ。TABLE が指定されていれば、TABLE にマッチングするテーブルのみ。
.echo on|off コマンドエコーを ON あるいは OFF へ切り替え。
.eqp on|off|full Enable or disable automatic EXPLAIN QUERY PLAN
.exit 本プログラムを終了。
.explain ?on|off|auto? Turn EXPLAIN output mode on or off or to automatic
.fullschema ?--indent? テーブルのスキーマと sqlite stat table の内容を表示。--indent を追加することで表示を整形。
.headers on|off ヘッダー表示の有無を切り替え。
.help ヘルプを表示。
.import FILE TABLE ファイル FILE のデータをテーブル TABLE にインポート。
.indexes ?TABLE? インデックスの一覧を表示。TABLE が指定されていれば、TABLE にマッチングするテーブルのインデックスのみ。
.limit ?LIMIT? ?VAL? Display or change the value of an SQLITE_LIMIT
.load FILE ?ENTRY? Load an extension library
.log FILE|off Turn logging on or off. FILE can be stderr/stdout
.mode MODE ?TABLE? 出力モードを以下のいずれかの MODE に設定。TABLE が指定されていれば、TABLE にマッチングするテーブルのみ。
ascii Columns/rows delimited by 0x1F and 0x1E
csv Comma-separated values
column Left-aligned columns. (See .width)
html HTML <table> code
insert SQL insert statements for TABLE
line One value per line
list Values delimited by .separator strings
tabs Tab-separated values
tcl TCL list elements
.nullvalue STRING NULL の代わりに STRING を使う。
.once FILENAME Output for the next SQL command only to FILENAME
.open ?FILENAME? 現在のデータベースを閉じて FILENAME を開く。FILENAME の指定が無い場合は、現在のデータベースを閉じるのみ。
.output ?FILENAME? 出力先を FILENAME あるいは標準出力 stdout に設定。
.print STRING... 文字リテラル STRING... を出力。
.prompt MAIN CONTINUE 標準のプロンプトを MAIN CONTINUE へ変更。
.quit 本プログラムを終了。.exit と同じ。
.read FILENAME FILENAME の SQL を実行。
.restore ?DB? FILE バックアップした FILE から DB(デフォルトは "main")へデータベースの内容をレストア(復元)。
.save FILE Write in-memory database into FILE
.scanstats on|off Turn sqlite3_stmt_scanstatus() metrics on or off
.schema ?PATTERN? テーブルのスキーマ(CREATE 文)を表示。PATTERN が指定されていればマッチングした内容のみ。--indent を追加することで表示を整形。
.separator COL ?ROW? 出力モードと .import コマンドにおいて、カラムの区切り文字を COL に、オプションで行(レコード)の区切り文字を ROW へ変更
.shell CMD ARGS... システムシェルのコマンド CMD ARGS... を実行。
.show 様々な設定の現在の値を表示。
.stats ?on|off? Show stats or turn stats on or off
.system CMD ARGS... システムシェルのコマンド CMD ARGS... を実行。.shell コマンドと同じ。
.tables ?TABLE? テーブル名の一覧を表示。TABLE が指定されていれば、TABLE にマッチングするテーブルのみ。
.timeout MS Try opening locked tables for MS milliseconds
.timer on|off Turn SQL timer on or off
.trace FILE|off Output each SQL statement as it is run
.vfsinfo ?AUX? Information about the top-level VFS
.vfslist List all available VFSes
.vfsname ?AUX? Print the name of the VFS stack
.width NUM1 NUM2 ... データを表示する時のカラム毎の幅を設定。負数の場合は右寄せ。

参考サイト

  1. SQLite Home Page
  2. Command Line Shell For SQLite

 

ブログランキング・にほんブログ村へ
にほんブログ村

0 件のコメント: