SQLite は軽量のデータベースであり、多くの組み込み製品で使用されており、組み込みデバイスでは必要なメモリはわずか数百 K です。 Windows/Linux/Unix などの主流のオペレーティング システムをサポートし、Tcl、PHP、Java などの多くのプログラミング言語や ODBC インターフェイスと組み合わせることができます。Mysql や PostgreSQL とも比較されます。世界的に有名なオープンソース ソフトウェアの中で、データベース管理システムの中でも処理速度が速いです。
SQLite は非常に小さいですが、サポートする SQL ステートメントは他のオープン ソース データベースと比べて劣りません
。
取引を開始する
コメント
トランザクションのコミット
コピー
インデックスの作成
テーブルの作成
トリガーの作成
ビューの作成
消去
データベースの切り離し
ドロップインデックス
ドロップテーブル
ドロップトリガー
ドロップビュー
トランザクションの終了
説明する
表現
入れる
ON CONFLICT 句
プラグマ
交換する
ロールバックトランザクション
選択
UPDATE
同時にトランザクション処理機能などもサポートします。 Microsoft の Access に似ていると言う人もいます。少し似ているように感じることもありますが、実際には大きく異なります。たとえば、SQLite はクロスプラットフォームをサポートしており、操作が簡単で、Office のサポートを必要としない Access とは異なり、多くの言語でデータベースを直接作成できます。非常に小規模なアプリケーションがある場合、または組み込み開発を行いたいが適切なデータベース システムがない場合は、今すぐ SQLite の使用を検討してください。現在、最新バージョンは 3.2.2 で、公式 Web サイトはhttp://www.sqlite.orgで、ソース コードとドキュメントはここから入手できます。同時に、データベース構造がシンプルでシステムのソースコードも少ないため、データベースシステム開発を学びたい専門家にも適しています。
ここで簡単な紹介から始めましょう。主にいくつかの問題を明確にしたいと思います。1 つはインストール方法と使用方法、もう 1 つは PHP と組み合わせて開発する方法です。
1. インストール
1. Windows プラットフォームは
Windows 上にファイルをダウンロードします。これは実際にはコマンド ライン プログラムです (ダウンロード アドレス: sqlite>
# SQLite プロンプト。コマンドのヘルプを表示する場合は、「.help」と入力します。sqlite では、すべてのシステム コマンドは .: で始まります。
sqlite> .help
.databases 接続されたデータベースの名前とファイルをリストします。
.dump ?TABLE? ... SQL テキスト形式でデータベースをダンプします。
.echo ON|OFF コマンドエコーをオンまたはオフにします
.exit このプログラムを終了します
.explain ON|OFF EXPLAIN に適した出力モードをオンまたはオフにします。
.header(s) ON|OFF ヘッダーの表示をオンまたはオフにします。
.help このメッセージを表示
.import FILE TABLE データを FILE から TABLE にインポートします
.indices TABLE TABLE 上のすべてのインデックスの名前を表示します
.mode MODE ?TABLE? 出力モードを設定します。MODE は次のいずれかです。
csv カンマ区切り値
列 左揃えの列 (.width を参照)。
html HTML <テーブル> コード
TABLE の SQL 挿入ステートメントを挿入
line 1 行に 1 つの値
list .separator文字列で区切られた値
タブ タブ区切りの値
tcl TCL リスト要素
.nullvalue STRING NULL 値の代わりに STRING を出力します。
.output FILENAME 出力を FILENAME に送信します
.output stdout 出力を画面に送信します
.prompt MAIN CONTINUE 標準プロンプトを置き換えます
.quit このプログラムを終了します
.read FILENAME FILENAMEでSQLを実行
.schema ?TABLE? CREATE ステートメントを表示します。
.separator STRING 出力モードと .import で使用される区切り文字を変更します。
.show 各種設定の現在の値を表示します
.tables ?PATTERN? LIKE パターンに一致するテーブル名をリストします。
.timeout MS ロックされたテーブルを MS ミリ秒間開いてみます
.width NUM NUM ... 「列」モードの列幅を設定します。
スクライト>
www.knowsky.com
# データベースカタログを作成します
sqlite> テーブルカタログを作成(
...> id 整数主キー、
...> pid 整数、
...> 名前 varchar(10) 一意
...> );
スクライト>
# テーブルが存在する場合は、次のプロンプトが表示されます。
SQL エラー: テーブル カタログはすでに存在します
# インデックス情報を作成します
カタログにインデックスcatalog_idxを作成します(ID asc)。
# テーブル情報をチェックして、テーブルがいくつあるかを確認します。
sqlite>.table
カタログ
# テーブルの構造を表示します。
sqlite> .schema カタログ
CREATE TABLE カタログ(
id 整数の主キー、
pid 整数、
名前 varchar(10) 一意
);
CREATE INDEX category_idx (カタログ ID asc);
#データテーブルにレコードを挿入
sqlite> カタログ (ppid,name) 値に挿入 ('001','heiyeluren');
#成功した場合はプロンプトは表示されません。式が間違っている場合は、エラー メッセージが表示されます。
SQL エラー: "set" 付近: 構文エラー
# レコード数を取得する
sqlite> カタログから count(*) を選択します。
1
# 検索レコードの取得
sqlite> カタログから * を選択;
1|1|heiyeluren
いずれにせよ、標準的な SQL を使用して操作すれば問題ありません。わからない場合は、公式 Web サイトのヘルプ情報を確認してください。さらに、SQLite はテーブル構造の変更をサポートしていないことに注意してください。テーブル構造を変更したい場合は、テーブルを削除して再作成することしかできないため、テーブルを作成する際にはスケーラビリティを考慮する必要があります。今後、この機能はさらに強化されることが予想されます。
2. Linux/Unix プラットフォームの
エラー: まだインストールしていませんが、おそらく Windows に似ていると思います。この部分はまた別の日に説明します。
2. SQLite の PHP 開発。PHP
5 はデフォルトで Mysql をサポートしなくなりましたが、SQLite がどれほど影響力があるかを示しています。そのため、SQLite 用の PHP を開発する場合は、PHP 5.0.0 を使用することをお勧めします。現在、SQLite 拡張機能を直接サポートしている PHP バージョン 5.0.4 を使用しています。PHP 拡張機能のインストール方法についてはここでは詳しく説明しません。わからない場合は、PHP 関連のドキュメントを参照してください。
ここでは主に SQLite の開発について説明します。現在、PHP のすべての主流 DB クラスは、PEAR::DB クラスや ADOdb クラスを含む SQLite ドライバーをサポートしているため、開発に DB を使用することも良い選択です。
説明を簡単にするため、
以下
の操作はすべて Windows 上で実行されます
。 PHP には SQLite の処理関数が多数あります。詳細については PHP マニュアルを参照してください。sqlite_open() 関数を使用して SQL データベースを開きます。正常に操作リソースが返され、失敗した場合は false が返されます。SQL クエリを実行するには、sqlite_query 関数を使用します。
以下では、現在の PHP プログラム ディレクトリに sqlite データベース ファイル abc.db があると仮定します。
<?php
//SQLiteデータベースを開く
$db = @sqlite_open("abc.db");
//例外処理
if (!$db) die("接続 Sqlite に失敗しました。n");
// foo というデータベースを追加します
@sqlite_query($db, "CREATE TABLE foo (bar varchar(10))");
//レコードを挿入
@sqlite_query($db, "INSERT INTO foo VALUES ('fnord')");
//すべてのレコードを取得します
$result = @sqlite_query($db, 'foo からバーを選択');
//取得した結果を出力する
print_r(sqlite_fetch_array($result))
;
表示される出力は
次のとおり
です。
(
[0] => フノルド
[バー] => fnord
) は
、コードが正常に実行されたことを示しています。入力がない場合は、プログラムまたはデータベース ファイルが存在するかどうかを確認してください。
この基本的な操作を踏まえて、さらに複雑な操作や SQL を使って情報管理を行うことも考えられ、ゲストブックや CMS システムを作成することは問題ないと思います。
2. PHP を使用してデータベースを作成および操作します
。sqlite.exe などのツールがない場合は、PHP を使用して sqlite データベースを作成し、管理することもできます。
実際、sqlite.exe プログラムによって作成されたデータベースの内容は空です。実際、データベース ファイルはテーブルが作成され、データが追加された後にのみ存在します。そのため、空のテストなどのファイルを手動で追加できます。 dbファイルを操作しますか?これは完全に可能です。以下では、PHP プログラムを使用してデータベースを作成し、データ テーブルの作成、データの挿入、データの取得という単純な機能を実行します。
まずコードを見てみましょう: (コードは長くなりますが、理解しやすくなります)
<?php
/**
* ファイル: sqlite.php
※機能:sqliteデータベースの処理
* 著者:ヘイエルレン
* 日時: 2005-8-5
*/
define("LN", __LINE__);//行番号
define("FL", __FILE__);//現在のファイル
define("DEBUG", 0);//デバッグスイッチ
$db_name = "heiyeluren.db";
//データベースファイルを作成します。ファイルの内容は空です
if (!file_exists($db_name)) {
if (!($fp = fopen($db_name, "w+"))) {
exit(エラーコード(-1, LN));
}
fclose($fp);
}
//データベースファイルを開く
if (!($db = sqlite_open($db_name))) {
exit(エラーコード(-2, LN));
}
//データテーブル構造を生成
if (!sqlite_query($db, "DROP TABLE テスト")) {
exit(エラーコード(-3, LN));
}
if (!sqlite_query($db, "CREATE TABLE test (id integer 主キー,pid integer,name varchar(10) UNIQUE)")) {
exit(エラーコード(-3, LN));
}
// データを挿入します
if (!sqlite_query($db, " INSERT INTO test (name) VALUES ('heiyeluren') ")) {
exit(エラーコード(-4, LN));
}
//データを取得する
if (!($result = sqlite_query($db, "SELECT * FROM test"))) {
exit(エラーコード(-5, LN));
}
//取得したデータを取得して表示する
while ($array = sqlite_fetch_array($result)) {
echo "ID: ". $array[id] ."<br>名前: ". $array[name] ;
}
/* エラーメッセージコード関数 */
関数 error_code($code, $line_num, $debug=DEBUG)
{
if ($code<-6 || $code>-1) {
false を返します。
}
スイッチ($コード) {
case -1: $errmsg = "データベース ファイルの作成エラー。";
壊す;
case -2: $errmsg = "sqlite データベース ファイルを開くことができませんでした。";
壊す;
case -3: $errmsg = "テーブルの作成に失敗しました。テーブルはすでに存在します。";
壊す;
case -4: $errmsg = "データの挿入に失敗しました。";
壊す;
case -5: $errmsg = "データベース データのクエリに失敗しました。";
壊す;
case -6: $errmsg = "データの取得に失敗しました。";
壊す;
ケース-7: $errmsg = "";
壊す;
デフォルト: $errmsg = "不明なエラー。";
}
$m = "<b>[ エラー ]</b><br>ファイル: ".basename(FL) ." <br>行: ".LN ."<br>メッセージ: ". $errmsg ." ;
if (!$debug) {
($m = $errmsg);
}
$m を返します。
}
?>
正しく動作すると、プログラムは最終的に次のように出力します:
ID: 1
名前:ヘイエルレン
上記のプログラムには、デバッグ、例外処理、データベース アクセスなどを含む比較的完全な機能が含まれています。これは単純なアプリケーションと考えられます。興味があれば拡張することもできます。
※終了:
基本的な操作はここまでです。今後時間があるときに内容を完成させていきます。興味があれば、調べてみてください。あなたの個人のホームページには、このような小さなデータベースが必要かもしれません。
※参考文献:
http://www.donews.net/limodou/archive/2004/03/21/7997.aspx
http://www.linuxsir.org/bbs/showthread.php?p=1213668#post1213668
※SQLiteリソース公式サイト:http: //www.sqlite.org
SQL 構文: http://www.sqlite.org/lang.html
開発ドキュメント: http://www.sqlite.org/docs.html
FAQ: http://www.sqlite.org/faq.html
ダウンロードアドレス: http://www.sqlite.org/download.html
著者: ヘイエルレン
日付: 2005-8-5