2020年11月15日日曜日

SQLite 3 コマンドラインツールでnullの表示を見やすくする

概要

SQLite3 のコマンドラインツールは、 デフォルトだとselect結果にnullがある場合 空白と見分けが付かない。 これを解決するために「.nullvalue」コマンドでnullに適当な文字列を割り当てて表示することができる。

ちなみに、SQLite では長さ0の文字列とnullは区別される。

実行例

実行環境
  • Windows 10 64bit
  • SQLite3 (3.33.0) Command-Line Shell
サンプルテーブル(product)
id
primary key
autoincrement
name
not null
quantity
default 0
remark
1 tomato 100
2 potato 120
3 pumpkin 50 (Comment...)

デフォルトの表示例


sqlite> -- # 1.
sqlite> .mode box
sqlite> -- # 2. 
sqlite> select * from product;
┌────┬─────────┬──────────┬──────────────┐
│ id │  name   │ quantity │    remark    │
├────┼─────────┼──────────┼──────────────┤
│ 1  │ tomato  │ 100      │              │
│ 2  │ potato  │ 120      │              │
│ 3  │ pumpkin │ 50       │ (Comment...) │
└────┴─────────┴──────────┴──────────────┘
                
  1. 見やすくするために 「box」 モードに変更
  2. selectすると値がnullの箇所には何も表示されていない

nullの表示を「(NULL)」に変更してみる

コンソール上での表示を変更しているだけで、 テーブルのデータを更新しているわけではないのでご安心を。


sqlite> -- # 1.
sqlite> .mode box
sqlite> -- # 2.
sqlite> .nullvalue (NULL)
sqlite> -- # 3.
sqlite> select * from product;
┌────┬─────────┬──────────┬──────────────┐
│ id │  name   │ quantity │    remark    │
├────┼─────────┼──────────┼──────────────┤
│ 1  │ tomato  │ 100      │ (NULL)       │
│ 2  │ potato  │ 120      │ (NULL)       │
│ 3  │ pumpkin │ 50       │ (Comment...) │
└────┴─────────┴──────────┴──────────────┘
                
  1. 見やすくするために 「box」 モードに変更
  2. nullの表示を「(NULL)」に変更
  3. selectすると値がnullの箇所に「(NULL)」と表示されている

参考URL