columnモードの時に列毎の横幅を指定する(.widthコマンド)

.width コマンドを使うと .mode コマンドによって column モードになっているときにデータを表示する列毎の横幅を設定することができます。ここでは SQLite における.width コマンドの使い方について解説します。

(Last modified: )

.widthコマンドの使い方

.width コマンドはデータを表示する時のカラム毎の幅を設定します。これは「.mode」コマンドによって column モードに設定されている時に有効となります。

.width NUM NUM ...

引数にはカラム毎の幅を文字数(半角文字換算)で指定します。複数のカラムの幅を設定する場合は半角スペースを空けて続けて記述して下さい。

1つだけ幅を指定した場合に全てのカラムの幅が指定した値になるわけではありませんのでご注意下さい。1つだけ指定した場合はあくまで最初のカラムの幅だけが指定した値となります。また幅をいくつに設定してもカラムとカラムの間には2文字分のスペースが空きます。

では実際に試してみます。まず column モードに変更した後でデフォルトの設定のままデータを取得して表示してみます。

.mode column

.widthコマンドの使い方(1)

デフォルトではカラムの幅は 10 文字に設定されているようです(幅が10文字で、それに加えて必ずカラムとカラムの間は 2 文字分スペースが入ります)。

それでは最初のカラムだけ幅を 4 文字に設定します。設定を変更したあとに SELECT 文を実行しています。

.width 4

.widthコマンドの使い方(2)

最初のカラムの幅が指定した 4 文字となりそれ以外のカラムの幅はデフォルトのまま 10 文字となっています。

次に最初のカラムの幅を 4 文字、次のカラムの幅を 6 文字としてみます。

.width 4 6

.widthコマンドの使い方(3)

最初のカラムの幅が 4 文字、次のカラムの幅が 6 文字となりそれ以外のカラムの幅はデフォルトのまま 10 文字となっています。

指定した幅にデータが入りきらない場合

カラムに含むまれる値がカラムに設定した幅で入りきらない場合、指定した幅以上の文字は切り捨てられて表示されます。

次の例では最初のカラムの幅を4文字、次のカラムの幅も4文字に設定してみます。

.width 4 4

指定した幅にデータが入りきらない場合(1)

2 番目のカラムには 4 文字以上の値が格納されていましたが幅が 4 文字に設定されているため 4 文字以降の文字は切り捨てられて表示されました。(あくまで表示する時に指定した文字数分だけ表示しているだけで格納されている値には影響しません)。

データを右詰めで表示する

.width コマンドで幅を指定するときに、マイナスの値を指定すると右詰めでデータを表示することができます。

例えば次のようなテーブルで試してみます。

select * from staff;

データを右詰めで表示する(1)

カラムの幅を指定しつつ、右詰めで表示するため次のように .width コマンドを実行します。

.width -4 -10

データを右詰めで表示する(2)

それぞれのカラムが指定した幅の中で右詰めで表示されました。

-- --

.width コマンドを使ってデータを表示する列毎の横幅を設定する方法について解説しました。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。