sqlite コマンドでクエリの出力結果を変更する

sqliteで、コマンドでクエリの出力結果を変更する手順を記述してます。「.mode」で出力する結果(モード)を指定することで可能です。
環境
- OS windows11 home
- sqlite 3.37.1
- DB Browser for SQLite 3.12.2
手順
コマンドでクエリの出力結果を変更するには、「.mode」を使用します。
.mode 出力モード
指定できるモードは以下となります。
ascii 1行で表示
box 枠
csv カンマ区切り
column 左揃え
html HTML
insert INSERT
json json
line 各カラム毎に行を分けて出力
list デフォルト
markdown markdown形式
quote SQLリテラル
table テーブル
tabs タブ区切り
tcl TCLのlist形式
実際に、いくつか指定して実行してみます。
sqlite> .mode ascii
sqlite> select * from sampletbl;
idnameage1taro102humiko203saburo304siro405goro506rokuko60
sqlite> .mode box
sqlite> select * from sampletbl;
┌────┬────────┬─────┐
│ id │ name │ age │
├────┼────────┼─────┤
│ 1 │ taro │ 10 │
│ 2 │ humiko │ 20 │
│ 3 │ saburo │ 30 │
│ 4 │ siro │ 40 │
│ 5 │ goro │ 50 │
│ 6 │ rokuko │ 60 │
└────┴────────┴─────┘
sqlite> .mode column
sqlite> select * from sampletbl;
id name age
-- ------ ---
1 taro 10
2 humiko 20
3 saburo 30
4 siro 40
5 goro 50
6 rokuko 60
sqlite> .mode html
sqlite> select * from sampletbl;
<TR><TH>id</TH>
<TH>name</TH>
<TH>age</TH>
</TR>
<TR><TD>1</TD>
<TD>taro</TD>
<TD>10</TD>
</TR>
<TR><TD>2</TD>
<TD>humiko</TD>
<TD>20</TD>
</TR>
<TR><TD>3</TD>
<TD>saburo</TD>
<TD>30</TD>
</TR>
<TR><TD>4</TD>
<TD>siro</TD>
<TD>40</TD>
</TR>
<TR><TD>5</TD>
<TD>goro</TD>
<TD>50</TD>
</TR>
<TR><TD>6</TD>
<TD>rokuko</TD>
<TD>60</TD>
</TR>
sqlite> .mode json
sqlite> select * from sampletbl;
[{"id":1,"name":"taro","age":10},
{"id":2,"name":"humiko","age":20},
{"id":3,"name":"saburo","age":30},
{"id":4,"name":"siro","age":40},
{"id":5,"name":"goro","age":50},
{"id":6,"name":"rokuko","age":60}]
sqlite> .mode insert
sqlite> select * from sampletbl;
INSERT INTO "table"(id,name,age) VALUES(1,'taro',10);
INSERT INTO "table"(id,name,age) VALUES(2,'humiko',20);
INSERT INTO "table"(id,name,age) VALUES(3,'saburo',30);
INSERT INTO "table"(id,name,age) VALUES(4,'siro',40);
INSERT INTO "table"(id,name,age) VALUES(5,'goro',50);
INSERT INTO "table"(id,name,age) VALUES(6,'rokuko',60);
sqlite> .mode markdown
sqlite> select * from sampletbl;
| id | name | age |
|----|--------|-----|
| 1 | taro | 10 |
| 2 | humiko | 20 |
| 3 | saburo | 30 |
| 4 | siro | 40 |
| 5 | goro | 50 |
| 6 | rokuko | 60 |
sqlite> .mode quote
sqlite> select * from sampletbl;
'id','name','age'
1,'taro',10
2,'humiko',20
3,'saburo',30
4,'siro',40
5,'goro',50
6,'rokuko',60
sqlite> .mode table
sqlite> select * from sampletbl;
+----+--------+-----+
| id | name | age |
+----+--------+-----+
| 1 | taro | 10 |
| 2 | humiko | 20 |
| 3 | saburo | 30 |
| 4 | siro | 40 |
| 5 | goro | 50 |
| 6 | rokuko | 60 |
+----+--------+-----+
sqlite> .mode tcl
sqlite> select * from sampletbl;
"id" "name" "age"
"1" "taro" "10"
"2" "humiko" "20"
"3" "saburo" "30"
"4" "siro" "40"
"5" "goro" "50"
"6" "rokuko" "60"
変更されていることが確認できます。
使用しているモード
現在使用しているモードは「.mode」で確認できます。
sqlite> .mode
current output mode: line
-
前の記事
sqlite 取得するデータ数を指定する 2023.03.28
-
次の記事
kotlin エラー「error: unexpected tokens (use ‘;’ to separate expressions on the same line)」の解決方法 2023.03.28
コメントを書く