- Home ›
- SQLite入門 ›
- SQLiteコマンドの使い方 ›
- HERE
.modeコマンド
「.mode」コマンドは出力モードを設定するために使用します。例えばSELECT文を使ってデータを取得した時、各データをカンマ区切りで表示するのか、それともタブ区切りで表示するのか、などについて設定できます。
.mode MODE ?TABLE?
1番目の引数にモードを指定します。指定可能な値は次のいずれかです。
csv カンマ区切りで出力 column カラム毎に左揃えで出力 html HTMLのTABLE形式で出力 insert INSERT文として出力 line 各カラム毎に行を分けて出力 list 区切り文字でカラムを区切り1行で出力(デフォルト) tabs タブ区切りで出力 tcl TCLのlist形式で出力
ではそれぞれのモードについて順に確認していきます。
listモードは取得したデータ1行毎に1行で出力します。1つの行に含まれるデータはカラム毎に現在設定されている区切り文字で区切って出力されます。
.mode list
SELECT文で既存のテーブルからデータを取得してみると次のように表示されます。
なお区切り文字は「.separator」コマンドで変更可能です。
csvモードは取得したデータ1行毎に1行で出力します。1つの行に含まれるデータはカラム毎にカンマ(,)で区切って出力されます。
.mode csv
SELECT文で既存のテーブルからデータを取得してみると次のように表示されます。
tabsモードは取得したデータ1行毎に1行で出力します。1つの行に含まれるデータはカラム毎にタブで区切って出力されます。
.mode tabs
SELECT文で既存のテーブルからデータを取得してみると次のように表示されます。
タブは8文字間隔で設定されているようです。
columnモードは取得したデータ1行毎に1行で出力します。1つの行に含まれるデータはカラム毎に左揃えを行って表示されます。
.mode column
SELECT文で既存のテーブルからデータを取得してみると次のように表示されます。
カラム毎の幅は決まっており、幅を超えるデータが含まれていた場合は切り捨てられて表示されます。なおカラム毎の幅は「.width」コマンドで変更することができます。
lineモードは取得したデータを1行毎に処理し、カラム毎に行を変えて表示されます。
.mode line
SELECT文で既存のテーブルからデータを取得してみると次のように表示されます。
取得したデータの1行毎に、1カラム1行で「カラム名 = 値」の形式で表示します。
htmlモードは取得したデータをHTMLのTABLE形式に変換して表示します。
.mode html
SELECT文で既存のテーブルからデータを取得してみると次のように表示されます。
1行毎に<tr>要素を持ち、カラム毎に<td>要素が記述されます。ただ<table>要素は記述されないようですので注意して下さい。
tclモードは取得したデータをTCLのリスト形式に変換して表示します。
.mode tcl
SELECT文で既存のテーブルからデータを取得してみると次のように表示されます。
insertモードは取得したデータ1行毎に、データを追加した時のINSERT文の形式で表示します。
.mode insert
SELECT文で既存のテーブルからデータを取得してみると次のように表示されます。
実際に実行されたINSERT文を保持していてそれを表示しているわけではありません。表示されたINSERT文はテーブル名が「table」に置き換わっています。
----
「.mode」コマンドを使って出力結果の表示形式を変更する方法について解説しました。外部ファイルに出力したい場合や出力結果をWebにテーブルとして出力したいなど目的に合わせて出力形式を選択されて下さい。
( Written by Tatsuo Ikura )