2021年6月26日土曜日

SQLite 3 コマンドラインツールのカラムの幅を変更する「.width」について

概要

「.width」コマンドを利用すればSQLiteのコマンドラインツールで表示される テーブルのカラムの幅の最小値を指定できる。
幅にマイナスを指定すればカラム中で右寄せにすることができる。

「.mode」の設定によっては設定した幅にならないものがある。

環境

  • Windows 10 64bit
  • SQLite3 (3.35.5) Command-Line Shell

ヘルプの内容

一緒に「.mode」コマンドの説明も表示される。


sqlite> .help .width
.mode MODE ?TABLE?       Set output mode
    MODE is one of:
        ascii     Columns/rows delimited by 0x1F and 0x1E
        box       Tables using unicode box-drawing characters
        csv       Comma-separated values
        column    Output in columns.  (See .width)
        html      HTML <table> code
        insert    SQL insert statements for TABLE
        json      Results in a JSON array
        line      One value per line
        list      Values delimited by "|"
        markdown  Markdown table format
        quote     Escape answers as for SQL
        table     ASCII-art table
        tabs      Tab-separated values
        tcl       TCL list elements
.width NUM1 NUM2 ...     Set minimum column widths for columnar output
        Negative values right-justify
                

実行例

「product」テーブル
id name quntity
1 tomato 100
2 potato 120
3 pumpkin 50
  1. 表示形式を「column」に変更、デフォルト表示
  2. 各カラムの表示幅を指定
  3. 「quantity」カラムを右揃えにする
  4. あくまで最小値を設定するだけなので、登録されているデータのほうが長ければそちらに合わせられる

sqlite> -- # 1.
sqlite> .mode column
sqlite> select * from product;
id  name     quantity 
--  -------  -------- 
1   tomato   100
2   potato   120      
3   pumpkin  50       

sqlite> -- # 2.
sqlite> .width 3 10 12
sqlite> select * from product;
id   name        quantity     
---  ----------  ------------ 
1    tomato      100
2    potato      120          
3    pumpkin     50           

sqlite> -- # 3.
sqlite> .width 3 10 -12
sqlite> select * from product;
id   name            quantity 
---  ----------  ------------ 
1    tomato               100
2    potato               120 
3    pumpkin               50 

sqlite> -- # 4.
sqlite> .width 1 1 1
sqlite> select * from product;
id  name     quantity 
--  -------  -------- 
1   tomato   100
2   potato   120      
3   pumpkin  50       
                

「.width」で最小値が指定できる/できない「.mode」

出来るモード
  • box
  • column
  • markdown
  • table
出来ないモード
  • ascii
  • csv
  • html
  • insert
  • line
  • quote

参考URL