Sqlite

如何正確格式化 sqlite shell 輸出?

  • May 11, 2020

如果我去mysql shell打字,SELECT * FROM users我會得到 -

+--------+----------------+---------------------------------+----------+-----------+--------------------+--------------------+
| USERID | NAME           | EMAILID                         | PASSWORD | USER_TYPE | CONTACT_ID_FKUSERS | COMPANY_ID_FKUSERS |
+--------+----------------+---------------------------------+----------+-----------+--------------------+--------------------+
|    137 | X              | b@cc.com                        | #        | ADMIN     |                166 |                110 |
|    138 | Kshitiz        | ksharma@aaa.com                 | asdf     | ADMIN     |                167 |                111 |
+--------+----------------+---------------------------------+----------+-----------+--------------------+--------------------+

Oracle sqlplus顯示 -

USERID     NAME  EMAILID    PASSWORD   USER_TYPE  CONTACT_ID_FKUSERS COMPANY_ID_FKUSERS
---------- ----- ---------- ---------- ---------- ------------------ ------------------
137        X     b@cc.com   #          ADMIN                     166                110
137        X     b@cc.com   #          ADMIN                     166                110

Sqlite shell顯示 -

137|X|b@cc.com|#|ADMIN|166|110
138|Kshitiz|ksharma@aaa.com|asdf|ADMIN|167|111
  1. 有沒有辦法美化輸出sqlite shell
  2. 是否有比預設發行版更好的替代外殼?(僅限 CLI 客戶端)

對於“人類可讀”輸出,您可以使用column模式,並打開標題輸出。這將為您提供類似於sqlplus範例中的輸出的內容:

sqlite> select * from foo;
234|kshitiz|dba.se
sqlite> .mode column
sqlite> select * from foo;
234         kshitiz     dba.se
sqlite> .headers on
sqlite> select * from foo;
bar         baz         baf
----------  ----------  ----------
234         kshitiz     dba.se

所有答案都提供了您可以在 SQLite 控制台或通過 CLI 鍵入的設置,但沒有人提到可以將這些設置放入 RC 文件中以避免一直鍵入它們。另存為~/.sqliterc

.mode column
.headers on
.separator ROW "\n"
.nullvalue NULL

注意我還為空值添加了一個佔位符,而不是預設的空字元串。

引用自:https://dba.stackexchange.com/questions/40656