SQLite | SQLiteコマンド | columnモードで列幅を指定する(.widthコマンド)

.mode columnが有効なとき、.widthコマンドで各カラムの表示幅を設定できます。ここでは、その使い方を説明します。

.widthコマンドの使い方

.widthコマンドは各カラムの表示幅を設定します。.modecolumnモードにした場合に使用できます。構文は次のとおりです。

.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> 

各カラムが指定幅の中で右揃えになっていることを確認できます。