.schemaコマンド
テーブルのスキーマに関する情報を取得します。
sqlite> .schema <TABLE>
TABLEを省略した場合は全てのテーブル情報を表示します。
sqlite> .schema CREATE TABLE address(id int, post_no text, address text); CREATE TABLE user(id int, name varchar(50), age int);
また、データベース内にテーブルを作成した場合、「sqlite_master」というテーブルに実行されたCREATE TABLE文が格納されます。このテーブルのデータを確認する事によりどのようなCREATE文が実行されたのか確認することが可能です。(表示modeはline。)
sqlite> select * from sqlite_master; type = table name = user tbl_name = user rootpage = 2 sql = CREATE TABLE user(id int, name varchar(50), age int) type = table name = address tbl_name = address rootpage = 3 sql = CREATE TABLE address(id int, post_no text, address text)
.backupコマンド
データベースは一つのファイルを使用しているため、バックアップを取る場合には単純にファイルをコピーするだけで作成できますが、一応コマンドがあります。
sqlite> .backup <DB> <FILE>
DBにはバックアップを取りたいデータベース名を指定します。データベース名とはsqlite> .databases
で表示されるname欄の事です。決してファイル名では無いので注意してください。但し、省略した場合はmain
となるので通常は省略しても大丈夫です。
FILEにはバックアップするファイル名を指定します。拡張子などはなんでもいいです。
sqlite> .backup hoge.sqlite.bk
実行後のメッセージは特に出ませんがファイルが作成されています。
.restoreコマンド
バックアップしたデータベースをレストア(復元)します。
sqlite> .restore <DB> <FILE>
これも.backup
と同様にDBを省略した場合はmain
となります。FILEにはレストアするバックアップファイル名を指定します。ファイル名はフルパスで指定する事も可能です。
sqlite> .restore /Users/@@@@/hoge.sqlite.bk
実行後のメッセージは特に出ません。
.dumpコマンド
テーブルの構造なども含むデータベースに関する情報をSQL文の形式で出力します。
sqlite> .dump <TABLE>
TABLEを省略した場合はデータベースに関する全ての情報をダンプします。
sqlite> .dump PRAGMA foreign_keys=OFF; BEGIN TRANSACTION; CREATE TABLE user(id int, name varchar(50), age int); INSERT INTO "user" VALUES(1,'山田 太郎',35); INSERT INTO "user" VALUES(2,'鈴木 花子',28); INSERT INTO "user" VALUES(3,'佐藤 元気',42); CREATE TABLE address(id int, post_no varchar(8), address varchar(50)); COMMIT;
.dumpコマンドだけでは画面に出力するのみになりますがファイルに出力したい場合は.outputコマンドを使います。
.outputコマンド
SELECT文など実行した時に画面に表示される結果をファイルに対して出力する事ができます。
sqlite> .output <FILENAME>
先ほどの.dumpコマンドと合わせて出力してみます。
sqlite> .output /Users/@@@@/hoge.sql sqlite> .dump sqlite> less /Users/@@@@/hoge.sql PRAGMA foreign_keys=OFF; BEGIN TRANSACTION; CREATE TABLE user(id int, name varchar(50), age int); INSERT INTO "user" VALUES(1,'山田 太郎',35); INSERT INTO "user" VALUES(2,'鈴木 花子',28); INSERT INTO "user" VALUES(3,'佐藤 元気',42); CREATE TABLE address(id int, post_no varchar(8), address varchar(50)); COMMIT; /Users/@@@@/hoge.sql (END)
ファイルが作成されて.dumpの結果が出力されていますね。 出力先をファイルから画面に戻したい場合は次のコマンドを実行します。
sqlite> .output stdout
.readコマンド
.dumpコマンドを使って作成したファイルは.readコマンドでインポートすることができます。
sqlite> .read <FILENAME>
FILENAMEにダンプファイル(自作したSQLファイルでもOK)を指定すると、ファイルをインポートしてファイルに書かれているSQL文を実行してくれます。
sqlite> .table -- この時点ではtableが無い sqlite> .read hoge.sql sqlite> .table -- SQLが実行されtableが作成される address user sqlite> select * from user; -- データもinsertされる 1|山田 太郎|35 2|鈴木 花子|28 3|佐藤 元気|42
ダンプファイルの拡張子は分かり易く~.sql
としましたが、~.txt
でも大丈夫です。