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 | |
.cloneNEWDB | 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 | ヘルプを表示。 | |
.importFILE TABLE | ファイル FILEのデータをテーブル TABLEにインポート。 | |
.indexes?TABLE? | インデックスの一覧を表示。TABLEが指定されていれば、TABLEにマッチングするテーブルのインデックスのみ。 | |
.limit?LIMIT? ?VAL? | Display or change the value of an SQLITE_LIMIT | |
.loadFILE ?ENTRY? | Load an extension library | |
.logFILE|off | Turn logging on or off. FILE can be stderr/stdout | |
.modeMODE ?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 | |
.nullvalueSTRING | NULL の代わりに STRINGを使う。 | |
.onceFILENAME | Output for the next SQL command only to FILENAME | |
.open?FILENAME? | 現在のデータベースを閉じて FILENAMEを開く。FILENAMEの指定が無い場合は、現在のデータベースを閉じるのみ。 | |
.output?FILENAME? | 出力先を FILENAMEあるいは標準出力 stdout に設定。 | |
.printSTRING... | 文字リテラル STRING...を出力。 | |
.promptMAIN CONTINUE | 標準のプロンプトを MAIN CONTINUEへ変更。 | |
.quit | 本プログラムを終了。.exitと同じ。 | |
.readFILENAME | FILENAMEの SQL を実行。 | |
.restore?DB? FILE | バックアップした FILEから DB(デフォルトは "main")へデータベースの内容をレストア(復元)。 | |
.saveFILE | Write in-memory database into FILE | |
.scanstats on|off | Turn sqlite3_stmt_scanstatus() metrics on or off | |
.schema?PATTERN? | テーブルのスキーマ(CREATE 文)を表示。PATTERNが指定されていればマッチングした内容のみ。--indent を追加することで表示を整形。 | |
.separatorCOL ?ROW? | 出力モードと .import コマンドにおいて、カラムの区切り文字を COLに、オプションで行(レコード)の区切り文字を ROWへ変更 | |
.shellCMD ARGS... | システムシェルのコマンド CMD ARGS...を実行。 | |
.show | 様々な設定の現在の値を表示。 | |
.stats ?on|off? | Show stats or turn stats on or off | |
.systemCMD ARGS... | システムシェルのコマンド CMD ARGS...を実行。.shellコマンドと同じ。 | |
.tables?TABLE? | テーブル名の一覧を表示。TABLEが指定されていれば、TABLEにマッチングするテーブルのみ。 | |
.timeoutMS | Try opening locked tables for MS milliseconds | |
.timer on|off | Turn SQL timer on or off | |
.traceFILE|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 | |
.widthNUM1 NUM2 ... | データを表示する時のカラム毎の幅を設定。負数の場合は右寄せ。 |
参考サイト

にほんブログ村