SQLiteとは?特徴と使い方を解説する

目次

  1. 背景
  2. SQLiteとは
    1. 軽量
    2. 一つのファイルに全部コミコミ (self-contained)
    3. サーバレス
    4. インストール不要 & 設定不要 (zero-configuration)
    5. 高い信頼性。
    6. フル機能のDB
    7. 余談
  3. 使ってみよう
    1. SQLite3のインストール
    2. DB作成
    3. もう少し試してみる。
  4. 余談
  5. まとめ
    1. PR

背景

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
2

sqlite> create table tbl1(id smallint, name varchar(20));                    

データインサートしーの、

insert
1
2
sqlite> insert into tbl1 values(1,'tanaka');
sqlite> insert into tbl1 values(2,'suzuki');

セレクトかけーの、

select
1
2
3
4
5
sqlite> select * from tbl1;

// 出力結果
1|tanaka
2|suzuki

普通に動く。
新卒の時に研修でMySQLの初期設定にかけた数時間はなんだったんだろうか。

ちなみに一通り遊んで、止めたいときは以下のコマンド。

1
.exit

管理系のコマンドは.(ドット)から始まるらしい。

同じフォルダでlsを打つと、DBファイルができてることが分かる。
-lhオプションでファイルサイズも表示させよう。

1
2
ls -lh
-rw-------  1    12K  6  9 23:13 test.db

12KB。。。まさかの二桁KB。
このサイズにフル機能のDBが詰まっていると思うと胸が熱い。

余談

DBeaverを使うとGUIで中身が見られる。

この記事も参考になるかも。
Macの無料SQLクライアントDBeaverを紹介する

まとめ

個人的に軽量と名がつくものが結構好きで、
例えば、PHPのフレームワークだったらLaravelよりCodeIgniter派、みたいな。

個人開発でDB周りだるいなと思うことが多かったので、
これでもっと高速化できるかも。

それじゃあ、今日はこの辺で。

PR

おすすめ技術本

徹底攻略ORACLE MASTER Bronze DBA 12c問題集[1Z0-065]対応【電子書籍】[ 株式会社クロノス 高山智史 ]