SQLite はオープンソースの RDBMS(リレーショナル・データベース・マネジメント・システム)の一つです。PHP の標準的なデータベースとして用いられることは多く、また、アプリケーションなどの組み込みデータベースとしても利用されます。

※この記事は執筆・公開から5年以上経過しています。記事の情報が古くなっている場合がありますのでご注意ください。

公開日時:2016/07/07 19:00 最終更新:2021/06/09 13:47   データベース

SQLite の導入

SQLite はオープンソースの RDBMS(リレーショナル・データベース・マネジメント・システム)の一つです。PHP の標準的なデータベースとして用いられることは多く、また、アプリケーションなどの組み込みデータベースとしても利用されます。

データベースを構成するのは単一のファイルのみであり、それを動作させるサーバーが必要ないため管理がとても簡単なのが理由でしょう。iOS や Android などのアプリケーションの組み込みデータベースとしても、よく利用されています。

簡単なデータベースでありながら、RDB に求められる大抵の処理に対応しており、トランザクションまで備えているところが魅力です。

ただし、サーバーが動作するわけではなく単一のデータベースファイルとして存在しているため、複数のコンピューターからアクセスされるような、一般的な RDBMS の利用には向きません。

SQLite のインストール

現在の SQLite は SQLite3 が主流です。インストールについては、やはり apt-get です。現在(2016-07-07)インストールされる SQLite3 のバージョンは 3.8.7.1 のようです。

sudo apt-get -y install sqlite3 php5-sqlite

以下のコマンドで .ini ファイルとそれに対するシンボリックリンクが生成されます。

sudo php5enmod sqlite3

インストールが終わったらバージョンを確認してみましょう。

pi@raspberrypi:~ $ sqlite3 --version
3.8.7.1 2014-10-29 13:59:56

Apache でライブラリを有効にするため、再起動を行って下さい。

sudo service apache2 restart

データベースの作成

冒頭で述べたとおり、SQLite はサーバーが存在しないため、ユーザー管理などもありません。いきなりデータベースを作って動作させる事になります。

では、データベースを作ってみましょう。まず pi ユーザーのホームディレクトリで sqlite3 ディレクトリを作成してその中に入ります。

cd ~

mkdir sqlite3

cd sqlite3

作成した SQLite3 ディレクトリに入ったらデータベースの作成です。.sqlite という拡張子にしましたが、これは何でも構いません。ファイル名部分と併せて、あなたの好きな名前をつけて下さい。

sqlite3 feijoa.sqlite
pi@raspberrypi:~/sqlite3 $ sqlite3 feijoa.sqlite
SQLite version 3.8.7.1 2014-10-29 13:59:56
Enter ".help" for usage hints.
sqlite>

sqlite のプロンプトが表示されました。これでデータベースが作成されています。試しにテーブルを作成してみましょう。sqlite プロンプトに以下の SQL を入力してみてください。

CREATE TABLE test_table1(id INTEGER PRIMARY KEY AUTOINCREMENT, name);

テーブルができているか確認してみましょう。

.mode line

としてラインモードに変更してから

SELECT * FROM sqlite_master;

で、確認できます。.mode については.modeコマンド(DBOnline)を参照して下さい。

sqlite> SELECT * FROM sqlite_master;
    type = table
    name = test_table1
tbl_name = test_table1
rootpage = 2
     sql = CREATE TABLE test_table1(id INTEGER PRIMARY KEY AUTOINCREMENT, name)

    type = table
    name = sqlite_sequence
tbl_name = sqlite_sequence
rootpage = 3
     sql = CREATE TABLE sqlite_sequence(name,seq)

なんか、出来てるみたいですね…。

レコードをインサートしてみましょう。

INSERT INTO test_table1(name) VALUES('テスト タロウ');
INSERT INTO test_table1(name) VALUES('テスト 二郎');
INSERT INTO test_table1(name) VALUES('テスト saburou');

では、今 INSERT したデータを見てみましょう。

SELECT * FROM test_table1 ORDER BY id ASC;

line モードだと見にくいので column モードにします。

.mode column

これで SELECT してみましょう。

SELECT * FROM test_table1 ORDER BY id ASC;

以下のようにレコードが登録されているはずです。

1           テスト タロウ
2           テスト 二郎
3           テスト saburou

このように、非常に簡単にデータベースを作ってデータを管理できるのが SQLite の最大の魅力です。

さて、ではこの sqlite のシェルから抜けてみましょう。

.exit

すると、Raspbian のシェルに戻ります。ファイルを確認してみましょう。

ls -la
pi@raspberrypi:~/sqlite3 $ ls -la
合計 12
drwxr-xr-x  2 pi pi 4096  7月  7 17:35 .
drwxr-xr-x 30 pi pi 4096  7月  7 17:42 ..
-rw-r--r--  1 pi pi 3072  7月  7 17:35 feijoa.sqlite

このように、feijoa.sqlite ファイルしかありません。これがデータベースの全てなのです。

ですから、このファイルを sqlite3 がインストールされている別のコンピューターに移してそのディレクトリで sqlite3 feijoa.sqlite を実行すれば、そこでデータベースの操作が出来てしまうのです。お手軽ですね。

と、いうことは、セキュリティなんてものは全く存在しないわけです。ですから、顧客情報等の重要なデータなどを管理する用途には全く向かない事に注意しましょう。

GUI でのデータベースの操作

さて、このように簡単な SQLite ですが、せっかく簡単なのですから操作をするのにいちいち SQL 文を入力するのなんてナンセンスです。何か GUI(グラフィカル・ユーザー・インタフェース)が欲しくなりますね。

SQLite を操作する GUI ツールはいろいろあるようですが、私は Firefox のアドオンである SQLite Manager を利用しています。

SQLite Manager 0.8.3.1-signed.1-signed

SQLite Manager アドオン入手画面

この、青い円筒のアイコンです。

インストールされたアドオン

勿論、Raspbian に Firefox をインストールしても良いですが、別の作業用コンピューターがあるならそちらで行っても構いません。先程も述べたように、SQLite のデータベースは単一ファイルで、それを別のコンピューターに移せばそこで管理できますから、使い慣れている OS で作業をした方が楽かもしれませんね。

青い円筒のアイコンをクリックすると SQLite Manager 画面が立ち上がるので、データベース > データベースに接続 で、データベースファイルを指定します。

データベース選択

データベースが選択されると、GUI でデータベースが操作できるようになります。

GUI 画面

あとは、適当に操作した後、データベースを Raspberry Pi に戻せば再び Raspberry Pi で管理できます。

そういうわけですから、データベースのバックアップなども非常に簡単に出来るわけです。

まとめ

SQLite の導入から利用までを簡単に纏めてみました。

ソケットサーバー「HAL」では、MySQL、PostgreSQL、SQLiteを簡単に扱うためのライブラリである DataMapper Liteを導入する事が決定しました。

DataMapper Lite を利用すれば、簡単な記述で SQL が発行できるようになります。近日中にリリースいたしますし、既にソケットサーバー「HAL」をご購入されている方には無償で追加ファイルをご提供いたします。

また、さらに簡単に SQL が発行できる製品 DataMapper(有償)も少し遅れてリリースされます。

ぜひ、DataMapper Lite をご利用いただき、データベースというものが如何に簡単に扱える便利なものであるのかをご実感ください。


SQL のバイブルを最後に紹介して締めさせて頂きます。

記事リンク