SQLite 輕量級數據庫簡介

SQLite 輕量級數據庫簡介

SQLite 一個輕量級別數據庫, 具有很多不錯的特點。
支持事件
不需要配置,不需要安裝,也不需要管理員
支持大部分SQL92
一個完整的數據庫保存在磁盤上面一個文件
同一個數據庫文件可以在不同機器上面使用
最大支持數據庫到2T
字符和BLOB的支持僅限制於可用內存
整個系統少於3萬行代碼,少於250KB的內存佔用(gcc)
大部分應用比目前常見的 客戶端/服務端 的數據庫快
沒有其它依賴
源代碼開放, 代碼95%有較好的註釋
簡單易用的API. 官方帶有TCL的編譯版本。其它的單獨提供

php 從 5.x 開始默認內置編譯了SQLite, 4.x 需要通過pear 來安裝 pear install sqlite SQLite 常用於嵌入到程序, 爲一些需要數據庫,但是不必要安裝中/大型的數據庫,而且進行的是比較普通的操作(例如select/insert/delete之類的)

php的sqlite的一些例子
以下爲打開一個名叫sqlite.db的庫, 如果不存在,會創建一個(需要目錄可寫)

$db_name='sqlite.db';
$db=new SQLiteDatabase($db_name, 0644, $error);
if ($error) exit($error); 

創建一個表, 三個字段
user,主鍵,非空,長度100的varchar
pass,非空,長度100的varchar
date,非空,整型,索引
這裏使用了queryExec 而不是 query.因爲只是執行,不需要返回結果
注意:在SQLite裏面query也是可以執行多行語句,但是如果有結果返回的,則只會有執行第一個有結果返回的命令。
執行失敗將會返回FALSE.

$db->queryexec("
    CREATE TABLE user (
    user VARCHAR ( 100 ) NOT NULL PRIMARY KEY,
    pass VARCHAR ( 100 ) NOT NULL,
    date INTEGER NOT NULL,
    );
    CREATE INDEX user_date ON user(date);
"); 

插入一條數據

$db->query("INSERT INTO user (user, pass, date) VALUES ('admin', 'password', 123456789)");
$db->query("INSERT INTO user (user, pass, date) VALUES ('super', 'password2', 123456790)"); 

對某條記錄進行更新

$db->query("UPDATE user SET password='password1' WHERE user='admin'"); 

查詢
PHP下面SQLite的查詢有很多形式
sqlite_array_query 進行一個查詢,直接將返回的結果放入array
sqlite_query 是個普通的執行命令,返回爲handle

返回來的handle 可以通過以下來獲取結果
sqlite_fetch_all 獲取所有結果並且將每條結果作爲array,然後放入一個大的array裏面
sqlite_fetch_array 獲取下一個結果作爲array
sqlite_fetch_column_types — Return an array of column types from a particular table
sqlite_fetch_object 獲取下一個結果返回一個對象(obj)
sqlite_fetch_single 只獲取第一列結果,返回爲字符變量
sqlite_fetch_string 等同於 sqlite_fetch_single

因此會很方便寫數據庫的查詢
例子:

$r=$db->singleQuery("SELECT password FROM user WHERE user='admin'");
// $r 則爲返回來的 password1 字符串

$q=$db->Query("SELECT * FROM user");
while ($r=$q->fetch()) {
  echo "User: $r[user]    Password: $r[pass]    Date: $r[date]n";
}

$r=$db->fetchAll("SELECT user, password FROM user");
print_r($r); 

使用SQLite最大的好處是不用依賴使用其它DB,而且基本不需要擔心DB server崩潰了你的程序就跟着掛了。
另外就是C/C++/delphi/java的可以把整個數據庫引擎內嵌,不需要調用其它API,接口等
全文完.


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章