概要
SQLite3 のコマンドラインツールは、 デフォルトだとselect結果にnullがある場合 空白と見分けが付かない。 これを解決するために「.nullvalue」コマンドでnullに適当な文字列を割り当てて表示することができる。
ちなみに、SQLite では長さ0の文字列とnullは区別される。
実行例
実行環境
- Windows 10 64bit
- SQLite3 (3.33.0) Command-Line Shell
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...) │
└────┴─────────┴──────────┴──────────────┘
- 見やすくするために 「box」 モードに変更
- 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...) │
└────┴─────────┴──────────┴──────────────┘
- 見やすくするために 「box」 モードに変更
- nullの表示を「(NULL)」に変更
- selectすると値がnullの箇所に「(NULL)」と表示されている
参考URL
-
Command Line Shell For SQLite
公式のコマンドラインツールに関するドキュメント
https://www.sqlite.org/cli.html