ものづくりのブログ

うちのネコを題材にしたものづくりができたらいいなと思っていろいろ奮闘してます。

【SQLite3】縦横を変えて表示

SQLite3 で縦横を変えて表示する方法をここにメモします。

[.mode column] を使う(CLI)

SQLite の対話モードで以下を実行すると、表形式で見やすく表示されます。

  • カラム名が上部に表示される(横向きのままだが見やすい)
  • 各列のデータが整列する
.mode column
SELECT * FROM users;

[.mode line] を使う(CLI)

データを縦向きに表示するには、以下を実行します。

  • 各行が1レコードごとにブロック形式で表示される
  • カラム名がデータと一緒に縦に並ぶ
.mode line
SELECT * FROM users;

出力例

id = 1
name = Alice
age = 25

id = 2
name = Bob
age = 30

[UNION ALL] を使う(SQLクエリ内で縦変換)

テーブルのカラムを行として表示するには、以下のような SQL を使います。

  • SQLクエリだけでカラムを行として取得できる
  • ユーザー定義ビューとして保存可能
SELECT 'id' AS column_name, id AS value FROM users
UNION ALL
SELECT 'name', name FROM users
UNION ALL
SELECT 'age', age FROM users;

出力例(縦表示)

column_name | value
------------+------
id          | 1
name        | Alice
age         | 25
id          | 2
name        | Bob
age         | 30

[.mode json] を使う(CLI)

SQLite 3.38 以降なら [.mode json] を使うと、データがJSON形式で表示され、縦に見やすくなります。

  • JSONとして扱いやすい
  • データの可読性が高い
.mode json
SELECT * FROM users;

出力例

[
  {"id":1, "name":"Alice", "age":25},
  {"id":2, "name":"Bob", "age":30}
]