2020年10月12日月曜日

SQLite 3 コマンドラインツールからSQLファイルを読み込んで実行する

概要

あらかじめSQLやコマンドを記述したテキストファイルを準備しておき、 コマンドラインツールから読み込み・実行することができる。 「.read」コマンドを使う。 テキストデータをテーブルに反映する「.import」とは異なる。

コマンドプロンプトやbashからSQLやコマンドを記述したテキストファイルを実行させたい場合はこちら。
SQLite 3 バッチファイルやシェルスクリプトからSQLを実行する

ヘルプの内容


sqlite> .help .read
.read FILE               Read input from FILE
                

外部のSQLを実行する例

サンプルテーブル(product)
id
primary key
autoincrement
name
not null
quantity
default 0
remark
1 tomato 100
2 potato 120
3 pumpkin 50 (Comment...)

例)データを新規登録して結果を表示

環境
  • Windows 10 64bit
  • SQLite3 (3.33.0) Command-Line Shell
sample01.sql

insert into product
(id, name, quantity, remark)
values 
(4, 'soy', 30, '300g');

select * from product;
                
上記ファイルをSQLiteコマンドラインツールで実行する

sqlite> .read ./sample01.sql
1|tomato|100|
2|potato|120|
3|pumpkin|50|(Comment...)
4|soy|30|300g
                

コマンドも記述できる

「.mode」や 「.print」 といったSQLiteコマンドラインツールのコマンドも記述できる。
また、「--」で始まる行はコメントとして認識され、実行されない。

sample02.sql

-- this is sample script

insert into product
(id, name, quantity, remark)
values 
(4, 'soy', 30, '300g');

.print "inserted 1 item \n"

.mode csv
select * from product;
                
上記ファイルをSQLiteコマンドラインツールで実行する

sqlite> .read ./sample02.sql
inserted 1 item

1,tomato,100,""
2,potato,120,""
3,pumpkin,50,(Comment...)
4,soy,30,300g
                

参考URL