IT技術で仕事を減らしたい!

ITエンジニアのメモ+α

SQLite3 出力モードの一覧

どうも、nippa です。

SQLite3 は軽量なファイルベースのデータベースです。SQLite3 を取り扱う必要がでてき たので、 SQLite3 の出力モードについてまとめておきたいと思います。

環境

  • macOS 12.6
  • SQLite3 3.43.0

現在の出力モードの確認

現在の出力モードは SQLite3 でデータベースにアクセスした状態で以下のコマンドで確 認できます。

.mode

# 出力
current output mode: list

出力モード種類

.mode [modeオプション]で出力形式を変更します。各 mode オプションは以下のテーブ ルになります。

mode オプション 詳細
ascii 列や行が 0x1F(単位区切り文字)と 0x1E(記録区切り文字)で区切られた形式で出力する。
box ユニコードの罫線文字を使用してテーブルを描画される。このモードは視覚的に整理された表として表示するのに適している。
csv コンマ区切り値形式で出力する。Output 先をファイルに変更すると直接 CSV ファイルとして出力できる。
column 結果を列で整理して出力する。.width コマンドを使用して、各列の幅を調整することができる。
html HTML の<table>要素を使用して結果を表現する。
insert 結果を SQL の INSERT 文として出力する。
json 結果を JJSON 配列として出力する。
line 1 行に 1 つの値を出力する。
list 値をパイプ記号"|"で区切って出力する。
markdown Markdown 形式の表として結果を出力する。
qbox box モードのショートハンドで、ラップ幅を 60、引用符で囲むオプションがデフォルトで有効になる。
quote SQL の文字列リテラルとして結果をエスケープする。データを SQL 文として安全に扱う場合に便利。
table ASCII アートを使用してテーブルを描画する。box モードと似ていますが、ユニコードではなく ASCII 文字のみを使用する。
tabs タブ区切り値形式で結果を出力する。
tc TCL リスト要素として結果を出力する。

出力モードの出力例

以下のようなテーブルで出力テストをしています。

id(integer) name(text)
1 Bob
2 Alice
  • ascii
  1Bob2Alice
  • box
  ┌────┬───────┐
  │ id │ name  │
  ├────┼───────┤
  │ 1  │ Bob   │
  │ 2  │ Alice │
  └────┴───────┘
  1,Bob
  2,Alice
  • column
  id  name
  --  -----
  1   Bob
  2   Alice
  • html
  <TR><TD>1</TD>
  <TD>Bob</TD>
  </TR>
  <TR><TD>2</TD>
  <TD>Alice</TD>
  </TR>
  • insert
  INSERT INTO "table" VALUES(1,'Bob');
  INSERT INTO "table" VALUES(2,'Alice');
  [{"id":1,"name":"Bob"},
  {"id":2,"name":"Alice"}]
  • line
  id = 1
  name = Bob

  id = 2
  name = Alice
  • list
  1|Bob
  2|Alice
  | id | name  |
  |----|-------|
  | 1  | Bob   |
  | 2  | Alice |
  • qbox
  ┌────┬─────────┐
  │ id │  name   │
  ├────┼─────────┤
  │ 1  │ 'Bob'   │
  │ 2  │ 'Alice' │
  └────┴─────────┘
  • quote
  1,'Bob'
  2,'Alice'
  • table
  +----+-------+
  | id | name  |
  +----+-------+
  | 1  | Bob   |
  | 2  | Alice |
  +----+-------+
  • tabs
  1 Bob
  2 Alice
  • tcl
  "1" "Bob"
  "2" "Alice"

感想

今回 SQLite3 の出力モードについてまとめました。出力形式を変更できると便利なこと もあるので、知っておいても損はないと思います。

ではでは、また次回。