出力表示の設定(SQLiteを学ぶ_5)

SQLiteを学んでいこうという連載の5回目です。前回の記事はこちらになります。

hirocom777.hatenadiary.org

前回は、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は動的なデータ型付けを採用しているので状況によって変換されてしまうことがあります。次回はこれらの挙動を見ていきましょう。お楽しみに!!

hirocom777.hatenadiary.org

SQLite学習記事のまとめですはこちらから