はじめに
sqliteはローカルでちょっとアプリを動かしてみるとき、
さくらVPSなんかでちょっとしたアプリを作るときなんかは結構使えます。
rubyやphpやperlでアプリ作ったけどdb作るのめんどいなーってときには便利ですね!
macもvpsも結構標準でsqliteが入ってることが多いのも良いです。
というわけでサクと使うメモ
アジェダ
- いきなり使ってみる(dbとtable作成)
- データ入れて表示してみる(insertとselect)
- データのimport
.(ドット)
コマンド簡易リファレンス
1. いきなり使ってみる(dbとtable作成)
いきなりですが、sqliteは1データベース1ファイルです。
※ 下記のコマンド実行を見てみるとわかりやすいです
なのでsqlite3コマンドに続けてデータベースファイルを指定します。
これはまだなくても作ってくれるのでとりあえず適当な名前でやってみましょう。
今回はsample.db
という名前にしました。
※ sample.dbファイル(データベース)を指定して接続 $ sqlite3 sample.db SQLite version 3.8.5 2014-08-15 22:37:57 Enter ".help" for usage hints. ※ 抜けるときは`.q`とうつ sqlite> .q $
dbとtableつくる
dbファイルは上述の通り指定するのですが、
tableを作成したりなにかしらしないとファイルは勝手に作ってくれません。
なのでこんなかんじのcreate文でtable作成と同時にdbファイルを試しに作ってみます。
CREATE TABLE sample_table (
id int primary key,
name text not null default '',
description text not null default ''
);
やってみる
※ 試すようのディレクトリ作成&移動 $ mkdir ~/tmp $ cd ~/tmp ※ dbファイル指定してアクセス(ファイルはまだない $ sqlite3 sample.db ※ table作成 sqlite>CREATE TABLE sample_table ( ...> id int primary key, ...> name text not null default '', ...> description text not null default '' ...> ); ※ table確認 sqlite> .table sample_table ※ 抜ける sqlite> .q ※ ファイルできたか見てみる $ ls -l -rw-r--r-- 1 hoge hoge 12288 7 5 19:42 sample.db
2. データ入れて表示してみる(insertとselect)
データをいれるのも簡単で、mysqlやほかのsql文とたいして変わりません。
insertはこんなかんじ
insert into table名 (列1, 列2, ...) values (値1, 値2, ....);
insert&selectしてみる
$ cd ~/tmp $ sqlite3 sample.db ※ insertしてみる sqlite> insert into sample_table (id, name, description) values (1, 'hoge', 'hogeだよ'); ※ selectしてみる sqlite> select * from sample_table; 1|hoge|hogeだよ
簡単ですね
3. データのimport
流れとしてはいきなり飛んだ感がありますが、importの方法です。
実際に使ってみる(プログラムからアクセスしてみる)なんかの場合は
データを入れるのが面倒なんですよね。
インポートには.import
コマンドを使います。またデータはcsv形式で作ります。
.import インポートファイルのパス table名
※ csvデータ作る $ cd ~/tmp $ vi sample_table.csv ---- vi作成 ---- 2,'piyo','piyoだよ' 3,'fuga','fugaだよ' 4,'momo','momoだよ' --------------- ※ sqliteに接続 $ sqlite3 sample.db ※ おもむろにインポート sqlite> .import /Users/hoge/tmp/sample_table.csv sample_table ※ selectしてみる sqlite> select * from sample_table 1,hoge,hogeだよ 2,'piyo','piyoだよ' 3,'fuga','fugaだよ' 4,'momo','momoだよ'
importがエラーになる場合
こんなかんじでエラーが出る場合は下記リンクを参考にしてみてください。
/Users/hoge/tmp/sample_table.csv:1: expected 3 columns but found 1 - filling the rest with NULL
→【sqlite】sqliteでexpected 3 columns but found 1 - filling the rest with NULL
なエラーがでる
4. .(ドット)
コマンド簡易リファレンス
ここまでやってみるともうわかるかと思いますが、
sqliteは.(ドット)
からはじまるコマンドが用意されてます。
なのでその簡易リファレンス
コマンド | 説明 |
---|---|
.table | テーブルの一覧表示 |
.schema | テーブル定義(create文)を表示 |
.show | 設定を表示 |
.header | テーブル一覧のヘッダのON/OFを設定 |
.separator | 区切り文字を変更 |
.mode | select文などの出力モードを変更 |
.indices | インデックスの一覧表示 |
.width | データ表示時の幅の設定 |
.backup | データベースをバックアップ |
.dump | データベースをdump |
.restore | リストア |
.import | ファイルからのimport |
おわり
サクっと使えて便利なsqliteについてでしたー!