SQLite3ドットコマンド(.parameter)
キーバリュー形式の表を作り、SQL文で変数として使う。
成果物
.help
.parameter CMD ... Manage SQL parameter bindings
.parameter
sqlite3 :memory: ".parameter"
.parameter CMD ... Manage SQL parameter bindings clear Erase all bindings init Initialize the TEMP table that holds bindings list List the current parameter bindings set PARAMETER VALUE Given SQL parameter PARAMETER a value of VALUE PARAMETER should start with '$', ':', '@', or '?' unset PARAMETER Remove PARAMETER from the binding table
公式ドキュメント
SQL Parameter
CREATE TEMP TABLE sqlite_parameters( key TEXT PRIMARY KEY, value ANY ) WITHOUT ROWID;
.parameter
は.param
と省略できる.param init
はtemp.sqlite_parameters
テーブルが未存在なら作成する.param list
はtemp.sqlite_parameters
テーブルのレコードを一覧する.param clear
はtemp.sqlite_parameters
テーブルを削除する.param set KEY VALUE
はエントリを追加する.param unset KEY
はエントリを削除する
temp
はDBのこと。 main
ではなくtemp
。attach
するときのDB名。
?
:
@
$
SQL文でparameter
のkey
のプレフィックスなどに以下を指定するらしい。正直よくわからん。動作するコードが発見できなかったので。
記号 | 意味 |
---|---|
? |
1から始まるインデックス指定 |
: |
名前付きインデックス |
@ |
パラメータ名プレフィックス |
$ |
Tcl形式 |
.param
sqlite3 :memory: ".param" sqlite3 :memory: ".param init" sqlite3 :memory: ".param clear" sqlite3 :memory: ".param set key value" ".param list" sqlite3 :memory: ".param set key value" ".param list" ".param clear" ".param list" sqlite3 :memory: ".param set key value" ".param list" ".param unset key" ".param list"
clear
は削除されていない……。unset
で削除できた。
.parameter set
sqlite3 :memory: \ ".parameter set my_name Yamada" \ ".tables" \ "select sql from sqlite_master;" \ ".headers on" \ "select * from sqlite_parameters;"
key|value my_name|Yamada
判明したことは以下。
.parameter set キー 値
するとsqlite_parameters
テーブルが作成されるsqlite_parameters
テーブル名は.tables
で出力されないsqlite_parameters
テーブルのスキーマはselect sql from sqlite_master;
で出力されないsqlite_parameters
テーブルの列名はkey
,value
である
SQL内で使う
sqlite3 :memory: \ ".param set @target_name Yamada" \ "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');" \ "select * from users where name = @target_name ;"
1|Yamada|A
試行錯誤の結果、以下のルールを用いると成功した。
なお、@
を:
に置き換えても成功する。
数値もOK
sqlite3 :memory: \ ".param set @target_name Yamada" \ ".param set @target_age 20" \ "create table users(id integer primary key, name text, age int, class text);" \ "insert into users(name,age,class) values('Yamada', 12, 'A');" \ "insert into users(name,age,class) values('Yamada', 21, 'C');" \ "insert into users(name,age,class) values('Suzuki', 18, 'B');" \ "insert into users(name,age,class) values('Tanaka', 19, 'A');" \ "select * from users where age <= @target_age;"
1|Yamada|12|A 3|Suzuki|18|B 4|Tanaka|19|A
複数もOK
sqlite3 :memory: \ ".param set @target_name Yamada" \ ".param set @target_age 20" \ "create table users(id integer primary key, name text, age int, class text);" \ "insert into users(name,age,class) values('Yamada', 12, 'A');" \ "insert into users(name,age,class) values('Yamada', 21, 'C');" \ "insert into users(name,age,class) values('Suzuki', 18, 'B');" \ "insert into users(name,age,class) values('Tanaka', 19, 'A');" \ "select * from users where name = @target_name and age <= @target_age;"
1|Yamada|12|A
応用
環境変数をパラメータにする
たとえばユーザ入力を受け付けて絞込条件にする。
WHILE_NAME=Yamada WHILE_AGE=20 sqlite3 :memory: \ ".param set @target_name ${WHILE_NAME}" \ ".param set @target_age ${WHILE_AGE}" \ "create table users(id integer primary key, name text, age int, class text);" \ "insert into users(name,age,class) values('Yamada', 12, 'A');" \ "insert into users(name,age,class) values('Yamada', 21, 'C');" \ "insert into users(name,age,class) values('Suzuki', 18, 'B');" \ "insert into users(name,age,class) values('Tanaka', 19, 'A');" \ "select * from users where name = @target_name and age <= @target_age;"
だがこの場合、シェルコマンド自体を文字列編集してしまえばいいので何でもできてしまうため有り難みがわかりにくい。
.param
なんて使わず以下のほうが早くね? と言われるとその通り。
WHILE_NAME=Yamada WHILE_AGE=20 sqlite3 :memory: \ "create table users(id integer primary key, name text, age int, class text);" \ "insert into users(name,age,class) values('Yamada', 12, 'A');" \ "insert into users(name,age,class) values('Yamada', 21, 'C');" \ "insert into users(name,age,class) values('Suzuki', 18, 'B');" \ "insert into users(name,age,class) values('Tanaka', 19, 'A');" \ "select * from users where name = '${WHILE_NAME}' and age <= ${WHILE_AGE};"
強いて言うならリテラルの有無が面倒なくらい。
でも、SQLite3構文だけで完結できることが、何か有意義なことが、たぶんきっとおそらくある、と思いたい。
ファイル内容をパラメータにする
echo -e "@target_name\tYamada\n@target_age\t20" > params.tsv sqlite3 :memory: \ ".param init" \ ".mode tabs" \ ".import params.tsv sqlite_parameters" \ ".param list" \ "create table users(id integer primary key, name text, age int, class text);" \ "insert into users(name,age,class) values('Yamada', 12, 'A');" \ "insert into users(name,age,class) values('Yamada', 21, 'C');" \ "insert into users(name,age,class) values('Suzuki', 18, 'B');" \ "insert into users(name,age,class) values('Tanaka', 19, 'A');" \ "select * from users where name = @target_name and age <= @target_age;"
@target_age 20 @target_name 'Yamada' 1 Yamada 12 A
.import
,.mode
,.param
のコンボ。
これなら便利かも? 他のアプリでファイルを操作すればSQL絞込条件を編集できる。
パラメータ付きSQL文は、それ自体が何かをする定式として使える。
できればパラメータとそれを使うSQL文はひとまとめにしたい。オブジェクト指向のクラスみたいに扱えたらいいのに。メンバ変数にパラメータを、メンバメソッドにSQL文を持ったクラスとして。
でもSQL文を動的生成したほうが応用できるか。
ユーザ入力受付
WHILE_NAME=`zenity --entry --text="\`printf "ユーザ名入力"\`"` WHILE_AGE=20 sqlite3 :memory: \ ".param set @target_name ${WHILE_NAME}" \ ".param set @target_age ${WHILE_AGE}" \ "create table users(id integer primary key, name text, age int, class text);" \ "insert into users(name,age,class) values('Yamada', 12, 'A');" \ "insert into users(name,age,class) values('Yamada', 21, 'C');" \ "insert into users(name,age,class) values('Suzuki', 18, 'B');" \ "insert into users(name,age,class) values('Tanaka', 19, 'A');" \ "select * from users where name = @target_name and age <= @target_age;"
たとえば出現したテキストボックスにSuzuki
と入力すると以下の出力結果になる。
3|Suzuki|18|B
使える箇所
おそらく以下参考先と同じ?
ざっくりまとめると以下。
- 可
- 値, 式, 列名
- 不可
- 文字列リテラル
- 表名
ASC
,DESC
面倒なので検証はしない。
失敗した試行錯誤ログ
失敗した試行錯誤
sqlite3 :memory: \ ".parameter set target_name Yamada" \ "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');" \ "select * from users where name=?target_name;"
Error: near "target_name": syntax error
sqlite3 :memory: \ ".parameter set target_name Yamada" \ "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');" \ "select * from users where name=:target_name;"
sqlite3 :memory: \ ".parameter set target_name Yamada" \ "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');" \ "select * from users where name=@target_name;"
sqlite3 :memory: \ ".parameter set target_name Yamada" \ "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');" \ "select * from users where name=$target_name;"
Error: near ";": syntax error
sqlite3 :memory: \ ".parameter set target_name Yamada" \ "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');" \ "select * from users where name=?$target_name;"
sqlite3 :memory: \ ".parameter set target_name Yamada" \ "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');" \ "select * from users where name=?:target_name;"
Error: near ":target_name": syntax error
sqlite3 :memory: \ ".parameter set target_name Yamada" \ "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');" \ "select * from users where name=?@target_name;"
Error: near "@target_name": syntax error
sqlite3 :memory: \ ".parameter set target_name Yamada" \ "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');" \ "select * from users where name='?$target_name';"
sqlite3 :memory: \ ".parameter set target_name Yamada" \ "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');" \ "select * from users where name=?'$target_name';"
Error: near "''": syntax error
sqlite3 :memory: \ ".parameter set target_name Yamada" \ "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');" \ "select * from users where name=?$'target_name';"
Error: unrecognized token: "$"
sqlite3 :memory: \ ".parameter set target_name Yamada" \ "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');" \ "select * from users where name=?'target_name';"
Error: near "'target_name'": syntax error
sqlite3 :memory: \ ".parameter set target_name Yamada" \ "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');" \ "select * from users where name=$'target_name';"
Error: unrecognized token: "$"
sqlite3 :memory: \ ".parameter set target_name Yamada" \ "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');" \ "select * from users where name=?;"
sqlite3 :memory: \ ".parameter set target_name Yamada" \ "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');" \ "select * from users where name='?';"
sqlite3 :memory: \ ".parameter set target_name Yamada" \ ".parameter list" \ "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');" \ "select * from users where name=?;"
sqlite3 :memory: \ ".parameter set target_name Yamada" \ "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');" \ "select * from users where name='Yamada';"
1|Yamada|A
sqlite3 :memory: \ ".parameter set target_name Yamada" \ "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');" \ "select * from users where name = target_name ;"
Error: no such column: target_name
sqlite3 :memory: \ ".parameter set target_name Yamada" \ "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');" \ "select * from users where name = ? ;"
sqlite3 :memory: \ ".parameter set target_name Yamada" \ "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');" \ "select * from users where name = ?1 ;"
sqlite3 :memory: \ ".param set 1 Yamada" \ "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');" \ "select * from users where name = ?1 ;"
sqlite3 :memory: \ ".param set @target_name Yamada" \ "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');" \ "select * from users where name = @target_name ;"
1|Yamada|A
やっとできた! SQL文側だけでなくkey側にも必要なのかよ……。
sqlite3 :memory: \ ".param set ?target_name Yamada" \ "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');" \ "select * from users where name = ?target_name ;"
Error: near "target_name": syntax error
sqlite3 :memory: \ ".param set ?target_name Yamada" \ "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');" \ "select * from users where name = ?1 ;"
sqlite3 :memory: \ ".param set :target_name Yamada" \ "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');" \ "select * from users where name = :1 ;"
できた。:
でもいける。
sqlite3 :memory: \ ".param set :target_name Yamada" \ "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');" \ "select * from users where name = :target_name ;"
1|Yamada|A
でも$
ではできない。
sqlite3 :memory: \ ".param set $target_name Yamada" \ "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');" \ "select * from users where name = $target_name ;"
.parameter CMD ... Manage SQL parameter bindings clear Erase all bindings init Initialize the TEMP table that holds bindings list List the current parameter bindings set PARAMETER VALUE Given SQL parameter PARAMETER a value of VALUE PARAMETER should start with '$', ':', '@', or '?' unset PARAMETER Remove PARAMETER from the binding table Error: near ";": syntax error
頼むから動くコードを載せてくれ公式。ネットにもぜんぜん情報ないし、使い方わかってる人いるの? これ便利だと思うのだが。
.param clear
なんか削除されないんですけど……。
sqlite3 :memory: \ ".param set K1 V1" \ ".param list" \ ".param clear" \ ".param list"
K1 'V1' K1 'V1'
もしやテーブルからは削除されてる? と思ったがやはり同じ。
sqlite3 :memory: \ ".param set K1 V1" \ ".param list" \ "select * from sqlite_parameters;" \ ".param clear" \ ".param list" \ "select * from sqlite_parameters;"
K1 'V1' K1|V1 K1 'V1' K1|V1
.param init
何の役に立つの?
.param set
前にsqlite_parameters
テーブルへアクセスすると未存在だと怒られる。
sqlite3 :memory: \ "select * from sqlite_parameters;"
Error: no such table: sqlite_parameters
だが、.param init
しておけば空テーブルが作成されるので怒られない。それだけ。
sqlite3 :memory: \ ".param init" \ "select * from sqlite_parameters;"
.param init
で全件削除できるかも? と思ったが、削除されず。
sqlite3 :memory: \ ".param set K1 V1" \ ".param init" \ ".param list" \
K1 'V1'
.param unset KEY
パラメータを削除できる唯一のコマンド。
sqlite3 :memory: \ ".param set K1 V1" \ ".param list" \ ".param unset K1" \ ".param list"
K1 'V1'
作成されて削除された。
全件削除できないか試したが無理だった。
sqlite3 :memory: \ ".param set K1 V1" \ ".param list" \ ".param unset" \ ".param list"
K1 'V1' .parameter CMD ... Manage SQL parameter bindings clear Erase all bindings init Initialize the TEMP table that holds bindings list List the current parameter bindings set PARAMETER VALUE Given SQL parameter PARAMETER a value of VALUE PARAMETER should start with '$', ':', '@', or '?' unset PARAMETER Remove PARAMETER from the binding table K1 'V1'
sqlite3 :memory: \ ".param set K1 V1" \ ".param list" \ ".param unset *" \ ".param list"
K1 'V1' K1 'V1'
対象環境
- 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)
- SQLite3ドットコマンド(.mode)
- SQLite3ドットコマンド(.nullvalue)
- SQLite3ドットコマンド(.once)
- SQLite3ドットコマンド(.open)
- SQLite3ドットコマンド(.output)