mysql Shell
に移動してSELECT * FROM users
と入力すると、
+--------+----------------+---------------------------------+----------+-----------+--------------------+--------------------+
| USERID | NAME | EMAILID | PASSWORD | USER_TYPE | CONTACT_ID_FKUSERS | COMPANY_ID_FKUSERS |
+--------+----------------+---------------------------------+----------+-----------+--------------------+--------------------+
| 137 | X | [email protected] | # | ADMIN | 166 | 110 |
| 138 | Kshitiz | [email protected] | asdf | ADMIN | 167 | 111 |
+--------+----------------+---------------------------------+----------+-----------+--------------------+--------------------+
Oracle sqlplus
番組-
USERID NAME EMAILID PASSWORD USER_TYPE CONTACT_ID_FKUSERS COMPANY_ID_FKUSERS
---------- ----- ---------- ---------- ---------- ------------------ ------------------
137 X [email protected] # ADMIN 166 110
137 X [email protected] # ADMIN 166 110
Sqlite Shell
番組-
137|X|[email protected]|#|ADMIN|166|110
138|Kshitiz|[email protected]|asdf|ADMIN|167|111
sqlite Shell
からの出力を美しくする方法はありますか?「人間が読める」出力の場合、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
注:デフォルトの空の文字列の代わりに、null値のプレースホルダーも追加しました。
コマンドラインからsqliteを実行することを除いて、同じ結果を得ることに興味がある人のために。次の方法では機能しないことがわかりました。
$ sqlite3 <dbfile> ".headers on;.mode column;select * from MyTable"
Error: mode should be one of: ascii column csv html insert line list tabs tcl
代わりに、次のようにsqliteコマンドでオプション-columnおよび-headerを使用する必要があります。
$ sqlite3 -column -header <dbfile> "select * from MyTable"
使用:
$ sqlite3 --version 3.8.11.1 2015-07-29 20:00:57 cf538e2783e468bbc25e7cb2a9ee64d3e0e80b2f
いつも使う
.mode line
これは、MySQLの\G
修飾子と同様に、クエリ結果を垂直方向に出力します。
便宜上、.mode tabs
を使用できます。
sqlite> select * from user;
name age
Bob 18
ALi 19
まだコメントできないので... Matとmlissnerがすでに提供しているすばらしい回答に加えて、いずれかの場合にsqliteシェルに正しい形式を指定した後、列のコンテンツが切り捨てられます(.mode column
と.headers on
を使用して)前述のとおり)、.explain
を使用する可能性もあるため、列の完全な内容が表示されます。
このコマンドの唯一の欠点は、列ヘッダーが縮小するため、適切に読み取られず、出力が非常に乱雑になる可能性があることです(視覚的なシナリオの場合)、.explain off
を使用して以前の形式に戻り、さらに表示することができます "人間が読める形式」をもう一度。
このアプローチは、出力フォーマッタコマンドと組み合わせて使用できます。また、.width
の使用と同様に、完全な出力を取得するには常に正確な文字数を指定する必要があるため、データベース/列の完全なデータを表示する一時的なソリューションとして使用できます。列のデータの。
出力形式の変更の詳細については、デフォルトのCLIドキュメントへのクイックリファレンス: