1. 無料アクセス解析
PGKissiPhoneやAndroidでも使われている、組み込みと拡張が容易なSQLiteの使い方 2012/4/30

iPhoneやAndroidでも使われている、組み込みと拡張が容易なSQLiteの使い方

SQLiteに関しては、アプリケーションに組み込んで簡単に利用できるデータベースという位の認識はあったが、いろいろ調べてみると他にも魅力的な特徴がいっぱいあった。私が惹かれた特徴を列挙し、その内いくつかについては、具体的な使用方法をまとめておく。

特徴

組み込みが用意
アプリケーションにライブラリとしてリンクすれば、あとはAPIを呼び出すだけで簡単に利用できる。実際iPhone, Androidなどのスマートフォンや、Webブラウザ(Firefox, Chrome, Safari等)など多数のアプリケーションに組み込まれている。SQLiteがパブリックドメインであり、ライセンスを気にせずに済むのも、採用しやすい要因である。
UTF-8、BLOBのサポート
日本語を正しく扱うことができる。BLOBを使えばアプリケーション独自のバイナリデータも格納できる。
型の制約が緩い
ひとつのカラムに格納するデータ型がレコードごとに異なっていてもよい。テーブルを作るときにカラムの型を指定する必要すらない。例えば下記のように、簡単にKey-Valueストアを作成できる(他のKVストアほどスケーラブルではないが)。
create table kvstore(key text primary key, val);
insert into kvstore values("history.max", 100);
insert into kvstore values("user.name", "Einstein");
insert into kvstore values("pi", 3.14);
SQLiteのDBファイル以外のデータソースもSQLでアクセス可能
virtual table機能を使えば、例えばCSVファイルなどを仮想的なテーブルとしてSQLでアクセスできる。ただし、既存のモジュールを使用するか自分でモジュールを作成する必要がある。
関数(集約関数も含む)の拡張が容易
関数を追加して、アプリケーション独自のデータ(BLOBで格納)に対する演算処理をSQLから呼び出すことができる。
単一ファイルにDBを格納
SQLiteでは、単一のDBファイルに複数のテーブルやインデックスが格納される。バックアップは、オフラインバックアップは、ファイルをコピーするだけで済む。
複数DBに跨ったSQL処理
SQLiteでは、単一のDBファイルに複数のテーブルやインデックスが格納される。attach database文を使えば、異なるのDBファイルに格納されたテーブル間でJOINを行うこともできる。
DB管理ツール
DB管理ツールも豊富に存在する。
トランザクションのサポート
トランザクションが使える。
つまり、アプリケーションが内部で使用するスタンドアローンDBとして、かなり使えるDBと言える。 その他の特徴は、本家サイトWikipediaを参照。
  1. シェアードライブラリを使用してSQLiteに独自関数を追加する方法
inserted by FC2 system