やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

SQLite3学習 ドットコマンド(.width)

 .mode column時の最大幅を決める。

成果物

.help width

sqlite3 :memory: ".help width"
.width NUM1 NUM2 ...     Set column widths for "column" mode

 NUM1,NUM2,...は列インデックスと対応している。

.width

 .mode columnと併用するときに初めて有用。

入力値 意味
0 最小=10文字
1 最大=指定値
-1 最大=指定値の絶対値&右寄せ

デフォルト

sqlite3 :memory: \
".headers on" \
".mode column" \
"select 1 as id, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' as alphabet;"
id          alphabet                  
----------  --------------------------
1           ABCDEFGHIJKLMNOPQRSTUVWXYZ

 以下の0と同様の結果である。

0

sqlite3 :memory: \
".headers on" \
".mode column" \
".width 0" \
"select 1 as id, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' as alphabet;"
id          alphabet                  
----------  --------------------------
1           ABCDEFGHIJKLMNOPQRSTUVWXYZ

 0は最大幅の上限なし?

1

sqlite3 :memory: \
".headers on" \
".mode column" \
".width 1" \
"select 1 as id, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' as alphabet;"
i  alphabet                  
-  --------------------------
1  ABCDEFGHIJKLMNOPQRSTUVWXYZ

 1列目の長さが1になった。未指定の列はデフォルトの0か。

1 4

sqlite3 :memory: \
".headers on" \
".mode column" \
".width 1 4" \
"select 1 as id, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' as alphabet;"
i  alph
-  ----
1  ABCD

 1列目の長さが1、2列目の長さが4になった。

-1

sqlite3 :memory: \
".headers on" \
".mode column" \
".width -1" \
"select 1 as id, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' as alphabet;"
i  alphabet                  
-  --------------------------
1  ABCDEFGHIJKLMNOPQRSTUVWXYZ

-4 -30

sqlite3 :memory: \
".headers on" \
".mode column" \
".width -4 -30" \
"select 1 as id, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' as alphabet;"
  id                        alphabet
----  ------------------------------
   1      ABCDEFGHIJKLMNOPQRSTUVWXYZ

 右寄せになった。

対象環境

$ uname -a
Linux raspberrypi 4.19.42-v7+ #1218 SMP Tue May 14 00:48:17 BST 2019 armv7l GNU/Linux

前回まで