SQLiteのコマンドラインでSELECTを発行した結果表示が見にくいので、見やすくしてみる。
まずはテストDBを作成。
$ sqlite3 test.db SQLite version 3.6.20 Enter ".help" for instructions Enter SQL statements terminated with a ";"
sqlite> CREATE TABLE sample (id integer, name text); sqlite> INSERT INTO sample (id, name) VALUES (1, 'user1'); sqlite> INSERT INTO sample (id, name) VALUES (2, 'user2');
デフォルトの状態でSELECTしてみる。
sqlite> SELECT * FROM sample; 1|user1 2|user2
この結果表示が分かりにくい。
まず列名を表示する。
sqlite> .header on sqlite> SELECT * FROM sample; id|name 1|user1 2|user2
modeを変更して、カラムを区切って表示する。
sqlite> .mode column sqlite> SELECT * FROM sample; id name ---------- ---------- 1 user1 2 user2
いくつかあるmodeの中では、これが見やすいと思う。
毎回設定するのが面倒な場合は、~/.sqliterc に記載しておくと、sqlite実行時に設定が読み込まれる。
$ cat ~/.sqliterc .header on .mode column
mode には、以下の種類がある。デフォルトは list。
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 string tabs Tab-separated values tcl TCL list elements
CSVの場合
sqlite> .mode csv sqlite> SELECT * FROM sample; id,name 1,user1 2,user2
htmlの場合
sqlite> .mode html sqlite> SELECT * FROM sample; <TR><TH>id</TH> <TH>name</TH> </TR> <TR><TD>1</TD> <TD>user1</TD> </TR> <TR><TD>2</TD> <TD>user2</TD> </TR>
insertの場合
sqlite> .mode insert sqlite> SELECT * FROM sample; INSERT INTO table VALUES(1,'user1'); INSERT INTO table VALUES(2,'user2');
lineの場合
sqlite> .mode line sqlite> SELECT * FROM sample; id = 1 name = user1 id = 2 name = user2
tabsの場合
sqlite> .mode tabs sqlite> SELECT * FROM sample; id name 1 user1 2 user2
tclの場合
sqlite> .mode tcl sqlite> SELECT * FROM sample; "id" "name" "1" "user1" "2" "user2"