デフォルトでは、SQLiteコマンドラインシェルに接続してクエリを実行すると、結果はパイプで区切られたリストとして返されます。
結果に列名が含まれていないことに気付いたかもしれません。これは、特にクエリが多くの列を返した場合に、結果を読み込もうとすると混乱を招く可能性があります。
幸い、出力をフォーマットして、列ヘッダー付きの列として表示されるようにする簡単な方法があります。
デフォルトの出力
例として、SQLiteコマンドラインインターフェースがデフォルトでクエリ結果を出力する方法を次に示します。
SELECT * FROM Products;
結果:
1|Widget Holder|139.5 2|Widget Opener|89.7 3|Widgets - 6 Pack|374.2 4|Blue Widget|63.0
したがって、列ヘッダーはなく、パイプで区切られたリストとして表示されます。
列ヘッダーの追加
各列に列名を追加するには、.headers on
を使用します 。
.headers on
SELECT * FROM Products;
結果:
ProductId|ProductName|Price 1|Widget Holder|139.5 2|Widget Opener|89.7 3|Widgets - 6 Pack|374.2 4|Blue Widget|63.0
.headers off
を使用すると、ヘッダーを無効にできます 。
結果を列としてフォーマットする
.mode column
を使用することもできます 結果を列としてフォーマットします。
.mode column
SELECT * FROM Products;
結果:
ProductId ProductName Price ---------- ------------- ---------- 1 Widget Holder 139.5 2 Widget Opener 89.7 3 Widgets - 6 P 374.2 4 Blue Widget 63.0
デフォルトの形式に戻す必要がある場合は、.mode list
を使用できます。 。
列幅の変更
前の例では、製品名の1つが切り捨てられていることに気付くかもしれません。これは、列の幅よりも広いためです。
デフォルトでは、各列の幅は、列ヘッダー名とデータの最初の列の幅に応じて1〜10文字です。幅が広すぎて列に収まらないデータは切り捨てられます。
ただし、.width
は使用できます 列を特定の幅に設定するdotコマンド。
3番目の製品が切り捨てられないように、前の例を修正する方法は次のとおりです。
.width 0 16 0
SELECT * FROM Products;
結果:
ProductId ProductName Price ---------- ---------------- ---------- 1 Widget Holder 139.5 2 Widget Opener 89.7 3 Widgets - 6 Pack 374.2 4 Blue Widget 63.0
なぜ最初と3番目の列をゼロに設定したのか疑問に思われるかもしれません。
0
の値を使用する 実際に列を(特定のポイントまで)自動調整します。 0
を指定する 列を3つの数値の大きい方に設定します。 10、ヘッダーの幅、およびデータの最初の行の幅。
私の場合、これは1列目と3列目では正常に機能しますが、2列目では機能しません。したがって、その列を16
に設定しました (これは、3番目の製品が使用する文字数です)。
デフォルトにリセット
SQLiteのデフォルト(つまり、列ヘッダーのないパイプで区切られたリスト)を使用するために出力を一時的にリセットする必要がある場合は、新しいターミナルウィンドウを開いて、そこからコマンドを実行できます。この場合、SQLiteはデフォルト設定を使用します。
または、現在のターミナルウィンドウをリセットしてデフォルト設定を使用する場合は、いつでも次を使用できます。
.headers off
.mode list
.separator "|"
この場合、.separator
を追加しました 以前にセパレータを変更した場合に備えて、ドットコマンド。
疑問に思われる場合は、はい、.separator ", "
を使用できます。 結果をコンマ区切りのリストとして出力します。
列設定を保持する
前述のように、SQLiteに接続するために新しいターミナルウィンドウを開くたびに、クエリはSQLiteのデフォルト形式(パイプで区切られたリスト)に戻ります。
SQLiteに接続するたびに上記のコマンドを再入力する必要がないように、.sqliterc
にコマンドを入力できます。 ファイル。
たとえば、空白のテキストファイルを開き、次のように入力します。
.mode column
.headers on
ファイルを.sqliterc
として保存します ユーザーのホームディレクトリに移動し、SQLiteは接続するたびにそれを使用します。
たとえば、ユーザーのホームディレクトリが / Users / bartの場合 、次に、そのディレクトリ内に配置して、 /Users/bart/.sqlitercに配置します。 。
これは隠しファイルであるため、システムによっては確認などを求めるさまざまなプロンプトが表示される場合があります。ユーザーのホームディレクトリに保存されるまで、プロンプトに同意するだけです。