概要
コマンドプロンプトやbashからSQLiteのDBファイルに対しSQLを実行する方法。
pythonやRubyなどの言語であれば専用のライブラリ等でDBに接続してSQLを実行できるが、 コマンドプロンプトやbashの場合はSQLiteのコマンドラインツール使って実行することになる。
Windowsへのコマンドラインツール導入は以下を参照のこと。
SQLite コマンドラインツール導入手順 (Windows 10)
実行例
sqliteコマンドラインツールの引数にSQLを書くことができる。
パイプラインから渡したり、テキストファイルからのリダイレクトでもOK。
以下はWindowsのコマンドプロンプトからinsert文を実行する例。
普通に引数に指定する
C:\temp>sqlite3 sqlite.db "insert into test_table (id, name) values (001, 'example')"
パイプラインから渡す
C:\temp>echo "insert into test_table (id, name) values (001, 'example')" | sqlite3 sqlite.db
テキストファイルからリダイレクトする
テキストはUTF-8で作成する
C:\temp>more insert.sql
insert into test_table (id, name) values (001, 'example')
C:\temp>sqlite3 sqlite.db < insert.sql
応用
上記の手順であればSQLだけでなく、SQLite コマンドラインツールの各種コマンドを実行出来る。 「.once」コマンドでselectの結果をテキストファイルに出力したり、 「.read」コマンドで複数のSQLファイルを組み合わせて実行することも可能。
また、「%ERRORLEVEL%」や「$?」で終了コードを取得できるので、
実行したSQLやコマンドが失敗したかどうかも確認することができる。
SQLite 3 コマンドラインツールにも終了コードはある
参考URL
-
Command Line Shell For SQLite
公式のコマンドラインツールに関するドキュメント
https://www.sqlite.org/cli.html
-
あさはか備忘録: SQLite3 コマンドラインツールからSQLファイルを読み込んで実行する
https://sfnovicenotes.blogspot.com/2020/10/sqlite3-sql.html