SQLite3 をターミナルから操作する。データベースの作成から CSV ファイルのインポートまで
小さくて動作の早い SQLite というデータベースが iOS アプリでよく使われています。データベースを使用するアプリを書いてみたいので、SQLite3 を勉強することにしました。
この記事では、SQLite3 を動作させる手順について書いていきます。
事前準備
Mac のターミナルには、デフォルトで SQLite がインストールされているので、特別にソフトをインストールする必要はないです。
コマンドラインプログラムの起動と終了
デスクトップにある sqlite フォルダに移動。test.sqlite という名前の新規データベースファイルを指定して起動(フォルダに存在していれば、そのファイルを扱う)。コマンドラインの終了。
$ cd Desktop/sqlite
$ sqlite3 test.sqlite
sqlite> .exit
上記のコマンドでデータベースファイルがフォルダの中に作成されると思ったのですが、コマンドが入力されるまでデータベースファイルは作成されない模様。
例えば、現在使用中のデータベースファイルを表示する「.database」命令を実行すれば、データベースファイルが作成されます。
sqlite> .database
seq name file
--- --------------- ----------------------------------------------------------
0 main /Users/***/Desktop/sqlite/test.sqlite
テーブルを作成してデータを入力する
SQL 文を入力する時は、末尾にセミコロンを入力します。
hoge というテーブルを作成し、id と name という名前の 2 つのカラムを作成。データを入力して、表示。
sqlite> create table hoge (id integer, name varchar(16));
sqlite> insert into hoge values(1, "rakuishi");
sqlite> select * from hoge;
1|rakuishi
CSV ファイルからデータを追加する
次のようなデータを入力した「test.csv」ファイル(UTF-8, LF)を作成して、同じ sqlite フォルダに保存します。
test.csv
2,rakuiso
3,rakutaro
このファイルを作成したデータベースにインポートします。CSV ファイルは、カンマ区切りなのでデータの区切り記号を「,」に設定。test.csv ファイルを hoge テーブルにインポートしています。
sqlite> .separator ,
sqlite> .import ./test.csv hoge
sqlite> select * from hoge;
1,rakuishi
2,rakuiso
3,rakutaro