SQLiteを学んでいこうという連載の5回目です。前回の記事はこちらになります。
前回は、SQLiteの基本機能についてご紹介しました。データの作成(Create)、読み出し(Read)、更新(Update)、削除(Delete)の4つの機能です。
各機能の確認にはSQLの「SELECT」を使いました。画面にデータベースの内容が表示されます。この表示方法なのですが、設定によって色々な形に変更できるのです。今回は、それら表示方法について確認していきましょう。
表示の設定方法
表示の設定はドットコマンドの「.mode」で 表示モードを指定して行います。表示モードは15種類から指定できます(ascii,box,column,csv,html,insert,json,line,list,markdown,qbox,quote,table,tabs,tcl)。 主なものの挙動を見てみましょう。表示するテーブルは以下の手順で作りました。
sqlite> CREATE TABLE sample(id INTEGER,name TEXT,age INTEGER); sqlite> sqlite> INSERT INTO sample VALUES(1,"TANAKA",25); sqlite> INSERT INTO sample VALUES(2,"YAMADA",30); sqlite> INSERT INTO sample VALUES(3,"OOTA",27);
これを、各表示モードで「SELECT * FROM sample;」で表示してみます。
- list
デフォルトのモードです。ヘッダーの表示をする場合は「.headers ON」でヘッダー表示をONにします。
1|TANAKA|25 2|YAMADA|30 3|OOTA|27
- box
ヘッダーを含んだ内容をケイ線で囲んで表示します。
┌────┬────────┬─────┐ │ id │ name │ age │ ├────┼────────┼─────┤ │ 1 │ TANAKA │ 25 │ │ 2 │ YAMADA │ 30 │ │ 3 │ OOTA │ 27 │ └────┴────────┴─────┘
- qbox
ヘッダーを含んだ内容をケイ線で囲んで表示します。文字データはシングルクォーテーションで括ります。
┌────┬──────────┬─────┐ │ id │ name │ age │ ├────┼──────────┼─────┤ │ 1 │ 'TANAKA' │ 25 │ │ 2 │ 'YAMADA' │ 30 │ │ 3 │ 'OOTA' │ 27 │ └────┴──────────┴─────┘
- table
ヘッダーを含んだ内容をケイ線で囲んで表示します。ケイ線は半角文字で表示されます。
+----+--------+-----+ | id | name | age | +----+--------+-----+ | 1 | TANAKA | 25 | | 2 | YAMADA | 30 | | 3 | OOTA | 27 | +----+--------+-----+
- column
列を合わせて表示します。
1 TANAKA 25 2 YAMADA 30 3 OOTA 27
カンマで区切ったテキスト(CSVファイル形式)で表示します。
1,TANAKA,25 2,YAMADA,30 3,OOTA,27
- quote
カンマで区切ったテキストで表示します。文字データはシングルクォーテーションで括ります。
1,'TANAKA',25 2,'YAMADA',30 3,'OOTA',27
- html
HTML形式の表の形で表示します。
<TR><TD>1</TD> <TD>TANAKA</TD> <TD>25</TD> </TR> <TR><TD>2</TD> <TD>YAMADA</TD> <TD>30</TD> </TR> <TR><TD>3</TD> <TD>OOTA</TD> <TD>27</TD> </TR>
- insert
SQLのINSERT文の形で表示します。テーブルは"table"に置き換えています。
INSERT INTO "table" VALUES(1,'TANAKA',25); INSERT INTO "table" VALUES(2,'YAMADA',30); INSERT INTO "table" VALUES(3,'OOTA',27);
JSON形式で表示します。
[{"id":1,"name":"TANAKA","age":25}, {"id":2,"name":"YAMADA","age":30}, {"id":3,"name":"OOTA","age":27}]
ヘッダーを含んだ内容をMarkDownの表の形で表示します。
| id | name | age | |----|--------|-----| | 1 | TANAKA | 25 | | 2 | YAMADA | 30 | | 3 | OOTA | 27 |
- tabs
タブ区切りで出力されます。
1 TANAKA 25 2 YAMADA 30 3 OOTA 27
この様に色々な形で結果を出力できます。また、ドットコマンドの「.output」で出力先のファイルを指定すると、上にご紹介した内容をテキストファイルに出力できます。
次回はデータの挙動
いかがでしょうか。色々な形式で出力できるので、幅広い用途で使えそうです。次回はデータの挙動です。SQLiteは動的なデータ型付けを採用しているので状況によって変換されてしまうことがあります。次回はこれらの挙動を見ていきましょう。お楽しみに!!