sqlite:コマンドラインからSQL文実施

最近は様々なアプリケーションが、sqliteのデータベースを利用するようになりました。

自宅で利用している BaseStation.sqbを操作するためのメモです。

# コマンドラインからSQL文実施
sqlite3 ./BaseStation.sqb 'select count(*) from Aircraft;'

# SQL文の記入されたファイルを読み込ませる場合
cat INSERT.sql | sqlite3 ./BaseStation.sqb

# INSERT
sqlite3 ./BaseStation.sqb 

select * From Aircraft where AircraftID=380818;

# Insert文に利用する「AircraftID」の最大値+1を取得する。
select MAX(AircraftID)+1 from Aircraft;

INSERT INTO Aircraft VALUES(
(select MAX(AircraftID)+1 from Aircraft),'2021-12-31 00:00:00.00','2021-12-31 00:00:00.00',
'87C002','Japan','','80-1111',NULL,NULL,NULL,'A',NULL,
'BOEING','B773','777-37CER','',NULL,NULL,NULL,NULL,NULL,
'Japanese Air Force',NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,'M','',0,0,0,0,0,
'B773')
;

INSERT INTO Aircraft VALUES(
(select MAX(AircraftID)+1 from Aircraft),'2021-12-31 00:00:00.00','2021-12-31 00:00:00.00',
'86E86E','Japan','','JA878J',NULL,NULL,NULL,'A',NULL,
'BOEING','B787','787-946','',NULL,NULL,NULL,NULL,NULL,
'Japan Air Lines',NULL,NULL,NULL,NULL,NULL,NULL,0,NULL,NULL,NULL,NULL,NULL,0,0,0,0,0,NULL,NULL,NULL,'M','',0,0,0,0,0,
'B789')
;

SQLで実行した結果をSQL文ファイル(TABLE_NAME.sql)として保存する場合。

sqlite3 ./BaseStation.sqb 

.mode insert TABLE_NAME
.out TABLE_NAME.sql
SELECT * FROM TABLE_NAME

保存したSQL文(TABLE_NAME.sql)をデータベースに戻す場合。

sqlite3 ./BaseStation.sqb < TABLE_NAME.sql

参考にさせていただきました。ありがとうございます。