SQLite3でSELECT結果を見やすく整列する

SQLite3を使ってみるでテーブルの作成、値の挿入とテーブル内の値の出力を見てきました。

sqlite> SELECT * FROM users;

※ sqlite>の箇所の入力は不要です。


の実行結果が

1|太郎|100

で各値が何のカラムに対応しているかわからないので、値を確認しやすくしてみます。


SQLite3を起動して、下記のコマンドを実行してみます。

sqlite> .headers on

sqlite> SELECT * FROM users;

で実行結果がどのように変わったかを確認してみます。

id|name|money
1|太郎|100

各カラムと各値の対応はわかるようになりましたが、まだ見難いです。

そこで下記のコマンドを実行してみます。

sqlite> .mode table

sqlite> SELECT * FROM users;

で実行結果がどのように変わったかを確認してみます。

+----+------+-------+
| id | name | money |
+----+------+-------+
| 1  | 太郎   | 100   |
+----+------+-------+

多少の表示崩れはありますが、格段に見やすくなりました。


.modeで指定出来る設定は下記の通りです。

コマンド 表示スタイル 用途
table 枠線付き 視認性が高く、データの確認に最適。
column 列で整列 シンプルに整列させたいとき。
csv カンマ区切り Excelやスプレッドシートにデータを取り込みたいとき。
list 縦棒 | 区切り SQLiteのデフォルト。プログラムで結果を処理する場合に便利。
insert INSERT文形式 データを他のデータベースへ移行するためのSQLを作成したいとき。
json JSON形式 Web開発などで、データ構造をそのままコピーして使いたいとき。



.headersで指定した表示設定はSQLite3を終了すると消えてしまいます。

常に設定が反映されるようにするためにはホームディレクトリにSQLite3の設定ファイルを置きます。


$ micro ~/.sqliterc
.headers on
.mode table

これで常にSELECTの結果の出力が整形されている状態になりました。

京都の東本願寺で開催されているプログラミング教室で講師をしています。
詳しくはTera schoolを御覧ください。
マインクラフト用ビジュアルエディタを開発しています。

詳しくはinunosinsi/mcws_blockly - githubをご覧ください。