TOP書籍連動> SQLiteとは?
まるごと PHP!
まるごと PHP!

Part2:トライ!SQLite(1)

著者:桝形誠二(MASUGATA, Seiji)   2005/3/2
1   2  次のページ
SQLiteとは?

   SQLiteは、簡易ながらSQL仕様をほぼサポートするデータベースソフトウェアです。PHPとこのSQLiteを組み合わせて、データベースWebアプリケーションを構築できます。

   SQLiteは組み込み専用のDBMSで、PHP5からバンドルされています。SQLite単体はhttp://www.sqlite.org/から入手できます。SQLiteはパブリックドメインとして提供されており、無償であるだけでなく、ソースコードの改変や第三者への再配布も自由に行うことができます。

   SQLiteの動作を一言で表せば、ファイル操作をSQL言語で行うようなものです。MySQLやPostgreSQLなどのデータベースサーバーと違って、サーバープロセスを起動する必要がありません。このため、気軽に利用できます。構成は1つのデータベースにつき1つのファイルから成り、ユーザーという概念はなく、アクセス制御などはOSのユーザー属性によって管理されます。このため、Webアプリケーションで更新処理をする場合、Webサーバーの実行ユーザーの権限で書き込みを行うので、このユーザーにファイルへの書き込み権限を与えておかないと更新できないことに注意してください。

   SQLiteはACIDトランザクションをサポートしており、少ないメモリで動作し、SQL92仕様にほぼ準拠しています。完全にSQL92仕様に準拠しているわけではありませんが、利用するにあたって最低限必要となる副問い合わせなどの機能はひととおりそろえています。サポートされていない項目については、次のURLを参照してください。

インストールと基本操作(1)

   SQLiteは前述のとおりPHP5では既定で組み込み済みとなっていますが、単体でもインストール可能です。インストールは次のように行います。

   SQLiteのソースをhttp://www.sqlite.org/sqlite-2.8.15.tar.gzからダウンロードして、展開した後、./configure、make、makeinstallの順番でインストールします(図1)。

図1:SQLiteの展開とインストール
$ cd /usr/local/src
$ ls -l
合計940
-rw-r--r-- 1 masugata masugata 955212 6月29 10:10 sqlite-2.8.14.tar.gz
$ tar zxf sqlite-2.8.14.tar.gz
$ cd sqlite
$ ./configure --prefix=/usr/local/sqlite --enable-utf8
checking build system type... i686-pc-linux-gnu
(中略)
config.status: creating sqlite.pc
$ make
sed -e s/--VERS--/`cat ./VERSION`/\
(中略)
creating sqlite
$ su
Password:
# make install
/usr/bin/install -c -d /usr/local/sqlite/lib
(中略)
/usr/bin/install -c -m 0644 sqlite.pc /usr/local/sqlite/lib/pkgconfig;
# export PATH=$PATH:/usr/local/sqlite/bin
# which sqlite
/usr/local/sqlite/bin/sqlite
#

   インストールが完了したら、最初にデータベースを作成しましょう。まず、sqliteというコマンドラインユーティリティを利用します。sqlitetestdbと実行します。このとき、データベースが存在しない場合には自動的に作成されるので、あらかじめデータベースを用意しておく必要はありません。

   コマンドを実行すると、SQLiteのプロンプトに状態が遷移するので、テーブル作成を行うCREATE文を実行します。SQLiteはほかのDBMSと違ってデータ型を意識しません。つまり、createtable test1 ( no1, no2, no3 );のようにテーブルを定義することも可能です。通常のデータベース同様、データ型を明示したテーブル定義をすることも可能ですが、INSERT文やUPDATE文を実行したときに型の制約を参照しないので注意してください。MySQLでいうauto_increment項目を作成したい場合は、項目の属性を「INTEGER PRIMARY KEY」と宣言することで実現できます。

1   2  次のページ



著者プロフィール
桝形 誠二
様々な言語を経験していく中でPHPと出会い、初心者に易しいという魅力に惹かれ続けて早5年。色んな事をPHPで実装しようとしすぎて周囲の反感を買いやすいのが最近の悩み。


INDEX
Part2:トライ!SQLite(1)
SQLiteとは?
  インストールと基本操作(2)