SELECT文などの出力モードを変更(.modeコマンド)

.mode コマンドを実行することで、SELECT 文などを実行した結果の表示モードを変更することができます。ここでは SQLite における.mode コマンドの使い方について解説します。

(Last modified: )

.modeコマンドの使い方

.mode コマンドを実行すると SELECT 文などの実行結果で表示されるデータをカンマ区切りで表示するのか、それともタブ区切りで表示するのか、などについて設定できます。使い方は次の通りです。

.mode MODE ?TABLE?

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

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

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

listモード

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

.mode list

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

.modeコマンドの使い方 listモード

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

csvモード

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

.mode csv

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

.modeコマンドの使い方 csvモード

tabsモード

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

.mode tabs

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

.modeコマンドの使い方 tabsモード

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

columnモード

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

.mode column

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

.modeコマンドの使い方 columnモード

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

lineモード

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

.mode line

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

.modeコマンドの使い方 lineモード

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

htmlモード

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

.mode html

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

.modeコマンドの使い方 htmlモード

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

tclモード

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

.mode tcl

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

.modeコマンドの使い方 tclモード

insertモード

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

.mode insert

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

.modeコマンドの使い方 insertモード

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

quoteモード

quote モードは取得したデータを SQL リテラル形式に変換して表示します。文字列はシングルクォーテーションで囲まれた表示され、NULL は "NULL" と表示されます。区切り文字にはカンマ(,)が使用されます。

.mode quote

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

.modeコマンドの使い方 quoteモード

----

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

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。