rakuishi.com

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

新標準SQLite (オープンソースRDBMSシリーズ)新標準SQLite (オープンソースRDBMSシリーズ)