出力形式を指定する。一部は入力形式の指定にもなる。
成果物
.help
.mode MODE ?TABLE? Set output mode
.mode --help
Error: mode should be one of: ascii column csv html insert line list quote tabs tcl
.mode
テスト用ファイル作成
echo "create table users(id integer primary key, name text, class text); insert into users(name,class) values('Yamada','A'); insert into users(name,class) values('Suzuki','B'); insert into users(name,class) values('Tanaka','A');" > create_0.sql
デフォルト
デフォルトは.mode list
である。
sqlite3 :memory: \ ".read create_0.sql" \ "select * from users;"
1|Yamada|A 2|Suzuki|B 3|Tanaka|A
.mode
一覧
for mode in ascii column csv html insert line list quote tabs tcl; do echo "-----.mode ${mode}" sqlite3 :memory: \ ".read create_0.sql" \ ".mode ${mode}" \ "select * from users;" done
-----.mode ascii 1YamadaA2SuzukiB3TanakaA-----.mode column 1 Yamada A 2 Suzuki B 3 Tanaka A -----.mode csv 1,Yamada,A 2,Suzuki,B 3,Tanaka,A -----.mode html <TR><TD>1</TD> <TD>Yamada</TD> <TD>A</TD> </TR> <TR><TD>2</TD> <TD>Suzuki</TD> <TD>B</TD> </TR> <TR><TD>3</TD> <TD>Tanaka</TD> <TD>A</TD> </TR> -----.mode insert INSERT INTO "table" VALUES(1,'Yamada','A'); INSERT INTO "table" VALUES(2,'Suzuki','B'); INSERT INTO "table" VALUES(3,'Tanaka','A'); -----.mode line id = 1 name = Yamada class = A id = 2 name = Suzuki class = B id = 3 name = Tanaka class = A -----.mode list 1|Yamada|A 2|Suzuki|B 3|Tanaka|A -----.mode quote 1,'Yamada','A' 2,'Suzuki','B' 3,'Tanaka','A' -----.mode tabs 1 Yamada A 2 Suzuki B 3 Tanaka A -----.mode tcl "1" "Yamada" "A" "2" "Suzuki" "B" "3" "Tanaka" "A"
.mode list
+ .separator
.mode list
のとき、デリミタは.separator
で決まる。
.separator
なし
sqlite3 :memory: \ ".read create_0.sql" \ ".mode list" \ "select * from users;"
1|Yamada|A 2|Suzuki|B 3|Tanaka|A
.separator
あり
sqlite3 :memory: \ ".read create_0.sql" \ ".mode list" \ ".separator '-' ';'" \ "select * from users;"
1-Yamada-A;2-Suzuki-B;3-Tanaka-A;
.mode insert テーブル名
テーブル名なし
もしテーブル名がなければテーブル名は"table"
になってしまう。
sqlite3 :memory: \ ".read create_0.sql" \ ".mode insert" \ "select * from users;"
INSERT INTO "table" VALUES(1,'Yamada','A'); INSERT INTO "table" VALUES(2,'Suzuki','B'); INSERT INTO "table" VALUES(3,'Tanaka','A');
テーブル名あり
sqlite3 :memory: \ ".read create_0.sql" \ ".mode insert users" \ "select * from users;"
INSERT INTO users VALUES(1,'Yamada','A'); INSERT INTO users VALUES(2,'Suzuki','B'); INSERT INTO users VALUES(3,'Tanaka','A');
.mode column
+ .width
.mode column
のとき、表示幅は.width
で決まる。
.width
を指定しない
sqlite3 :memory: \ ".headers on" \ ".mode column" \ "select 1 as id, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' as alphabet;"
id alphabet ---------- -------------------------- 1 ABCDEFGHIJKLMNOPQRSTUVWXYZ
.width
を指定する
sqlite3 :memory: \ ".headers on" \ ".mode column" \ ".width -4 -30" \ "select 1 as id, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' as alphabet;"
id alphabet ---- ------------------------------ 1 ABCDEFGHIJKLMNOPQRSTUVWXYZ
.import
, .read
との併用
対象環境
- Raspbierry pi 3 Model B+
- Raspbian stretch 9.0 2018-11-13
- bash 4.4.12(1)-release
- SQLite 3.29.0
- MeCab 0.996ユーザ辞書
$ uname -a Linux raspberrypi 4.19.42-v7+ #1218 SMP Tue May 14 00:48:17 BST 2019 armv7l GNU/Linux
前回まで
- SQLite3学習をはじめよう
- SQLite3学習 SQLiteについて
- SQLite3学習 SQLiteの適切な用途
- SQLite3学習 SQLiteの特徴
- SQLite3学習 SQLiteのクセ
- SQLite3学習 データ型とアフィニティ
- SQLite3学習 演算子の一覧
- SQLite3学習 よくある質問
- SQLite3学習 SQLiteダウンロード&コンパイル
- SQLite3学習 Tclで操作する
- SQLite3学習 ビルドオプション動作確認(SQLITE_ALLOW_URI_AUTHORITY)
- SQLite3学習 面白そうなコンパイルオプション
- SQLite3学習 SQLiteの拡張について
- SQLite3学習 JSON拡張
- SQLite3学習 JSON拡張(json_extract)
- SQLite3学習 JSON拡張(json_each)
- SQLite3学習 JSON拡張(json_tree オブジェクト→行)
- SQLite3学習 JSON拡張(json_tree オブジェクトツリー→行)
- SQLite3学習 JSON拡張(json_tree オブジェクト配列→行)
- SQLite3学習 JSON拡張(json_group_array 行→配列)
- SQLite3学習 JSON拡張(json_group_object 行→オブジェクト)
- SQLite3学習 JSON拡張(json_array_length)
- SQLite3学習 JSON拡張(json_type)
- SQLite3学習 JSON拡張(json_valid)
- SQLite3学習 JSON拡張(json_quote)
- SQLite3学習 JSON拡張(json_array)
- SQLite3学習 JSON拡張(json_object)
- SQLite3学習 JSON拡張(json_patch)
- SQLite3学習 JSON拡張(json_insert)
- SQLite3学習 JSON拡張(json_replace)
- SQLite3学習 JSON拡張(json_set)
- SQLite3学習 JSON拡張(json_remove)
- SQLite3学習 全文検索(FTS5)
- SQLite3学習 全文検索FTSを日本語で使う方法を調べてみた
- 形態素解析MeCabをインストールする
- SQLite3学習 全文検索FTS5のMeCab用トークナイザを実装する
- SQLite3学習 FTS5+MeCabでクエリ構文
- SQLite3学習 FTS5のテーブル作成と初期化
- SQLite3学習 FTS5の補助関数
- SQLite3学習 FTS5のfts5vocab仮想テーブル
- SQLite3学習 再帰クエリ(WITH RECURSIVE)
- SQLite3学習 R-Treeモジュール
- SQLite3学習 ファイル入出力(SQL集計)
- SQLite3学習 拡張関数(generate_series)
- SQLite3謎 主キーの型をintにするとinsertで値を省略したらNULLになってしまう
- SQLite3学習 入出力関数(fsdir, readfile, writefile, edit)
- SQLite3ビルド コンパイルオプションを付与する方法(CFLAGS等))
- SQLite3 コンパイルオプション確認方法(pragma compile_options)
- SQLite3ビルド ICUを有効にする(SQLITE_ENABLE_ICU)
- SQLite3拡張 ICUを動的ロードする
- SQLite3拡張 ICUでcollateする
- SQLite3拡張 ICUで全文検索する(FTS4)
- SQLite3拡張 SQL関数一覧(pragma function_list)
- SQLite3拡張 仮想テーブルモジュール一覧(pragma module_list)
- SQLite3拡張 プラグマ一覧(pragma pragma_list)
- SQLite3謎 values()構文
- SQLite3学習 インタフェース概要
- SQLite3学習 CLI起動引数(-A)Archive
- SQLite3ビルド SQLITE_HAVE_ZLIBコンパイルオプション付与するも確認できず
- SQLite3学習 CLI(-readonly)
- MeCabユーザ辞書の作り方(Wikipediaの題名を名詞とした)
- SQLite3学習 CLI(-zip)
- SQLite3ドットコマンド(.archive)
- SQLite3ドットコマンド(.auth)断念
- SQLite3ドットコマンド(.backup .restore)
- SQLite3ドットコマンド(.read)
- SQLite3ドットコマンド(.dump)
- SQLite3ドットコマンド(.bail)謎
- SQLite3ドットコマンド(.binary)
- SQLite3ドットコマンド(.cd)
- SQLite3ドットコマンド(.changes)
- SQLite3ドットコマンド(.testcase .check)
- SQLite3ドットコマンド(.clone)
- SQLite3ドットコマンド(.databases)
- SQLite3ドットコマンド(.dbconfig)
- SQLite3ドットコマンド(.dbinfo)
- SQLite3ドットコマンド(.echo)
- SQLite3ドットコマンド(.eqp)
- SQLite3ドットコマンド(.excel)
- SQLite3ドットコマンド(.exit)
- SQLite3ドットコマンド(.expert)
- SQLite3ドットコマンド(.filectrl)
- SQLite3ドットコマンド(.fullschema)
- SQLite3ドットコマンド(.headers)
- SQLite3ドットコマンド(.help)
- SQLite3ドットコマンド(.import)
- SQLite3ドットコマンド(.imposter)
- SQLite3ドットコマンド(.indexes)
- SQLite3ドットコマンド(.limit)
- SQLite3ドットコマンド(.lint)
- SQLite3ドットコマンド(.load)
- SQLite3ドットコマンド(.log)