.modeコマンド

広告

「.mode」コマンドは出力モードを設定するために使用します。例えばSELECT文を使ってデータを取得した時、各データをカンマ区切りで表示するのか、それともタブ区切りで表示するのか、などについて設定できます。

.mode MODE ?TABLE?

1番目の引数にモードを指定します。指定可能な値は次のいずれかです。

csv      カンマ区切りで出力
column   カラム毎に左揃えで出力
html     HTMLのTABLE形式で出力
insert   INSERT文として出力
line     各カラム毎に行を分けて出力
list     区切り文字でカラムを区切り1行で出力(デフォルト)
tabs     タブ区切りで出力
tcl      TCLのlist形式で出力

ではそれぞれのモードについて順に確認していきます。

listモード

listモードは取得したデータ1行毎に1行で出力します。1つの行に含まれるデータはカラム毎に現在設定されている区切り文字で区切って出力されます。

.mode list

SELECT文で既存のテーブルからデータを取得してみると次のように表示されます。

p1-1

なお区切り文字は「.separator」コマンドで変更可能です。

csvモード

csvモードは取得したデータ1行毎に1行で出力します。1つの行に含まれるデータはカラム毎にカンマ(,)で区切って出力されます。

.mode csv

SELECT文で既存のテーブルからデータを取得してみると次のように表示されます。

p1-2

tabsモード

tabsモードは取得したデータ1行毎に1行で出力します。1つの行に含まれるデータはカラム毎にタブで区切って出力されます。

.mode tabs

SELECT文で既存のテーブルからデータを取得してみると次のように表示されます。

p1-3

タブは8文字間隔で設定されているようです。

columnモード

columnモードは取得したデータ1行毎に1行で出力します。1つの行に含まれるデータはカラム毎に左揃えを行って表示されます。

.mode column

SELECT文で既存のテーブルからデータを取得してみると次のように表示されます。

p1-4

カラム毎の幅は決まっており、幅を超えるデータが含まれていた場合は切り捨てられて表示されます。なおカラム毎の幅は「.width」コマンドで変更することができます。

lineモード

lineモードは取得したデータを1行毎に処理し、カラム毎に行を変えて表示されます。

.mode line

SELECT文で既存のテーブルからデータを取得してみると次のように表示されます。

p1-5

取得したデータの1行毎に、1カラム1行で「カラム名 = 値」の形式で表示します。

htmlモード

htmlモードは取得したデータをHTMLのTABLE形式に変換して表示します。

.mode html

SELECT文で既存のテーブルからデータを取得してみると次のように表示されます。

p1-6

1行毎に<tr>要素を持ち、カラム毎に<td>要素が記述されます。ただ<table>要素は記述されないようですので注意して下さい。

tclモード

tclモードは取得したデータをTCLのリスト形式に変換して表示します。

.mode tcl

SELECT文で既存のテーブルからデータを取得してみると次のように表示されます。

p1-7

insertモード

insertモードは取得したデータ1行毎に、データを追加した時のINSERT文の形式で表示します。

.mode insert

SELECT文で既存のテーブルからデータを取得してみると次のように表示されます。

p1-8

実際に実行されたINSERT文を保持していてそれを表示しているわけではありません。表示されたINSERT文はテーブル名が「table」に置き換わっています。

----

「.mode」コマンドを使って出力結果の表示形式を変更する方法について解説しました。外部ファイルに出力したい場合や出力結果をWebにテーブルとして出力したいなど目的に合わせて出力形式を選択されて下さい。

SQLite入門の他の記事を見てみる

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)