
目次
背景
android開発を始めた際に、
DBとしてSQLiteが使用されている、
ということでSQLiteとの付き合いが始まった。
何となく使っているのもあれなので、調べてみることにした。
SQLiteとは
Liteというだけあって、軽量のSQLらしい。
何がすごいかはこの公式サイトに存分にアピールされている。
https://www.sqlite.org/features.html
とはいえ、英語読むのとかだるいと思うので、調べた範囲で少し紹介したい。
軽量
サイズが異常に少ない。
600KB。
うちの会社でプロジェクト管理しているエクセルですら数MBだというのに。
設定でもっと削ることもできるらしい。
一つのファイルに全部コミコミ (self-contained)
SQLiteはソフトウェアとしてインストールされるというよりは、
DB自体が一つのファイルとして存在している。
実際、androidの中にはこのSQLiteのDBファイルが存在していて、
開いてデータを見たりできる。
また、そのファイル内にほとんど必要なものが入っている
= 外部のライブラリへの依存性が究極に少ないから、
クロスプラットフォームで動くようになっているとのこと。
サーバレス
ファイルで存在してるからDBサーバとかそういう次元の話じゃない。
ファイルの読み書き権限があればOK。
インストール不要 & 設定不要 (zero-configuration)
インストールとかしなくても動く。
ファイルがあればそれだけでDBとして機能する。
プロセスとしてstart, stopしないといけない、とかもない。
初期設定とかもいらない。
これはDBとしてはとても画期的なのでは。
高い信頼性。
テストカバレッジが100%
ブランチカバレッジという、分岐の全ての条件を一度は通るようなテストで
カバレッジ100%。ブランチカバレッジの100%はかなり難しいらしい。
テストは全然ライトじゃない。
フル機能のDB
いくら軽量で設定不要でもDBとして使えなければ意味がない。
SQLiteはDBとして必要な機能は一通り揃えているよう。
機能も全然ライトじゃない。
余談
ちなみに公式サイトはすごくライト。
画像もロゴくらいしか使われていない。

使ってみよう
少し使いたくなってきません?
導入は本当に簡単で5分くらいしか掛からなかった。
興味があれば、ぜひ。
以下、導入方法。
SQLite3のインストール
SQLite自体は前述の通り、インストール不要。
ただ、そのDBファイルを作ったり、設定したりする際に、
SQLite3というコマンドラインツールが必要らしい。
macユーザならbrewで入れられる。Windowsの人もexeファイルをDLするだけ。
1 | brew install sqlite3 |
DB作成
で、適当なフォルダの中で以下のコマンドを実行。
今回は何となく.dbと拡張子を付けたけど、
好きな拡張子でいいし、別になくてもいい。
1 | sqlite3 test.db |
はい、DB完成です。おめでとうございます。
もはや不安になる早さと手軽さ。
もう少し試してみる。
テーブル作りーの、
1 |
|
データインサートしーの、
1 | sqlite> insert into tbl1 values(1,'tanaka'); |
セレクトかけーの、
1 | sqlite> select * from tbl1; |
普通に動く。
新卒の時に研修でMySQLの初期設定にかけた数時間はなんだったんだろうか。
ちなみに一通り遊んで、止めたいときは以下のコマンド。
1 | .exit |
管理系のコマンドは.(ドット)から始まるらしい。
同じフォルダでls
を打つと、DBファイルができてることが分かる。
-lhオプションでファイルサイズも表示させよう。
1 | ls -lh |
12KB。。。まさかの二桁KB。
このサイズにフル機能のDBが詰まっていると思うと胸が熱い。
余談
DBeaverを使うとGUIで中身が見られる。

この記事も参考になるかも。
Macの無料SQLクライアントDBeaverを紹介する
まとめ
個人的に軽量と名がつくものが結構好きで、
例えば、PHPのフレームワークだったらLaravelよりCodeIgniter派、みたいな。
個人開発でDB周りだるいなと思うことが多かったので、
これでもっと高速化できるかも。
それじゃあ、今日はこの辺で。
PR
おすすめ技術本
![]() | 徹底攻略ORACLE MASTER Bronze DBA 12c問題集[1Z0-065]対応【電子書籍】[ 株式会社クロノス 高山智史 ] |
