SQLite | SQLiteコマンド | columnモードで列幅を指定する(.widthコマンド)
.mode columnが有効なとき、.widthコマンドで各カラムの表示幅を設定できます。ここでは、その使い方を説明します。
.widthコマンドの使い方
.widthコマンドは各カラムの表示幅を設定します。.modeでcolumnモードにした場合に使用できます。構文は次のとおりです。
.width NUM NUM ...
各引数にはカラム幅を文字数で指定します。複数の幅は空白で区切ります。
引数を1つだけ指定すると、最初のカラムだけが変更されます。また、幅に関係なくカラム間には2文字分の空白が入ります。
実際に試します。columnモードに切り替え、既定の設定でデータを表示します。
.mode column
qlite> .mode column
sqlite>
sqlite> select * from user;
1 devkuma Seoul
2 kimkc Busan
3 araikuma Seoul
4 happykuma Seoul
5 mykuma Daejeon
sqlite>
既定のカラム幅は10文字で、カラム間にはさらに2文字分の空白が入ります。
最初のカラムだけを4文字幅に設定し、SELECT文を実行します。
.width 4
sqlite> select * from user;
1 devkuma Seoul
2 kimkc Busan
3 araikuma Seoul
4 happykuma Seoul
5 mykuma Daejeon
sqlite>
最初のカラムは4文字幅になり、残りは既定の10文字幅のままです。
次に、最初のカラムを4文字、2番目を6文字に設定します。
.width 4 6
sqlite> .width 4 6
sqlite>
sqlite> select * from user;
1 devkum Seoul
2 kimkc Busan
3 araiku Seoul
4 happyk Seoul
5 mykuma Daejeon
sqlite>
最初のカラムは4文字、2番目は6文字になり、残りは既定の10文字幅です。
データが指定幅を超える場合
値がカラム幅を超える場合、超過した文字は切り詰めて表示されます。
次の例では、最初と2番目のカラムを4文字幅に設定します。
.width 4 4
sqlite> .width 4 4
sqlite>
sqlite> select * from user;
1 devk Seoul
2 kimk Busan
3 arai Seoul
4 happ Seoul
5 myku Daejeon
sqlite>
2番目のカラムには4文字を超える値がありますが、表示は4文字で切り詰められます。保存されている値には影響しません。
データを右揃えで表示する
.widthに負の値を指定すると、データを右揃えで表示できます。
次の.widthコマンドで幅を指定し、右揃えに設定します。
.width -4 -10
sqlite> select * from user;
1 devkuma Seoul
2 kimkc Busan
3 araikuma Seoul
4 happykuma Seoul
5 mykuma Daejeon
sqlite>
各カラムが指定幅の中で右揃えになっていることを確認できます。