
1、SQLite簡(jiǎn)介
SQLite第一個(gè)Alpha版本誕生于2000年5月. 至今已經(jīng)有4個(gè)年頭了. 而在今年的5月SQLite也迎來(lái)了一個(gè)新的里程: SQLite 3. SQLite官方網(wǎng)站: http://www.sqlite.org/
2、SQLite類(lèi)型
SQLite的數(shù)據(jù)類(lèi)型
首先你會(huì)接觸到一個(gè)讓你驚訝的名詞: Typelessness(無(wú)類(lèi)型). 對(duì)! SQLite是無(wú)類(lèi)型的. 這意味著你可以保存任何類(lèi)型的數(shù)據(jù)到你所想要保存的任何表的任何列中, 無(wú)論這列聲明的數(shù)據(jù)類(lèi)型是什么(只有在一種情況下不是, 稍后解釋). 對(duì)于SQLite來(lái)說(shuō)對(duì)字段不指定類(lèi)型是完全有效的. 如:
Create Table ex1(a, b, c);
誠(chéng)然SQLite允許忽略數(shù)據(jù)類(lèi)型, 但是仍然建議在你的Create Table語(yǔ)句中指定數(shù)據(jù)類(lèi)型. 因?yàn)閿?shù)據(jù)類(lèi)型對(duì)于你和其他的程序員交流, 或者你準(zhǔn)備換掉你的數(shù)據(jù)庫(kù)引擎. SQLite支持常見(jiàn)的數(shù)據(jù)類(lèi)型, 如:
CREATE TABLE ex2(
a VARCHAR(10),
b NVARCHAR(15),
c TEXT,
d INTEGER,
e FLOAT,
f BOOLEAN,
g CLOB,
h BLOB,
i TIMESTAMP,
j NUMERIC(10,5)
k VARYING CHARACTER (24),
l NATIONAL VARYING CHARACTER(16)
);
前面提到在某種情況下, SQLite的字段并不是無(wú)類(lèi)型的. 即在字段類(lèi)型為”Integer Primary Key”時(shí).
SQLite支持SQL92 標(biāo)準(zhǔn)。
3、用.NET操作sqlite數(shù)據(jù)庫(kù)
System.Data.SQLite
是一個(gè)原始SQLite的加強(qiáng)版. 它將是一個(gè)原版的sqlite3.dll完全替代品 (你甚至就可以把它重命名為sqlite3.dll). 它不需要鏈接.NET 運(yùn)行時(shí),所以可以脫離.NET獨(dú)立發(fā)布, 然而它內(nèi)嵌了一個(gè)完整的 ADO.NET 2.0 引擎,為開(kāi)發(fā)提供了完整的支持.
以下是它的特性簡(jiǎn)介:
完整的 ADO.NET 2.0 實(shí)現(xiàn)
整個(gè)工程完全基于VS2005 和 ADO.NET 2.0全新構(gòu)建, 使用了全部的ADO.NET framework新特性. 包括完整的 DbProviderFactory 支持, 自動(dòng)的分布式事務(wù)調(diào)用, 廣泛的模式支持, 此外所有的類(lèi)都是從 ADO.NET 2.0 的基類(lèi)繼承下來(lái)的.
支持完整和精簡(jiǎn)的 .NET Framework 以及 C/C++
這個(gè)庫(kù)不需要鏈接依賴(lài).NET運(yùn)行時(shí),100%兼容原始的sqlite3.dll,可以使用非托管的C/C++ 進(jìn)行開(kāi)發(fā).
可移植的數(shù)據(jù)庫(kù)文件
未加密的 SQLite 數(shù)據(jù)庫(kù)文件可以自由的跨平臺(tái)和處理器使用,包括非Windows平臺(tái). 加密之后的數(shù)據(jù)庫(kù)可以在全部Windows平臺(tái)上使用.
可以信賴(lài)的速度,比包括Sql Server Mobile 在內(nèi)的其它大多數(shù)嵌入式數(shù)據(jù)庫(kù)都要快速
SQLite'安裝所占用的空間相對(duì)于Sql Mobile可謂忽略不計(jì)了. 它在運(yùn)行的時(shí)候占用更少的內(nèi)存,同時(shí)生成的數(shù)據(jù)庫(kù)也更小.
數(shù)據(jù)庫(kù)加密
可以對(duì)整個(gè)數(shù)據(jù)庫(kù)文件進(jìn)行加密. 支持二進(jìn)制和明文的密碼.
支持使用Visual Studio 2005 設(shè)計(jì)
你可以向Server Explorer添加一個(gè)SQLite 連接, 使用查詢(xún)?cè)O(shè)計(jì)器創(chuàng)建處查詢(xún)語(yǔ)句, 向一個(gè)數(shù)據(jù)集中拖拽一個(gè)表格等等! SQLite的開(kāi)發(fā)者可以在包括體驗(yàn)版在內(nèi)的各種Visual Studio 2005下工作.
單文件再發(fā)布包容量在400kb以下
將SQLite本身和ADO.NET 封裝捆綁編譯在一起. 預(yù)編譯的二進(jìn)制文件提供了 x86, IA64, x64 和ARM 的版本.
廣泛的SQL語(yǔ)言支持
SQLite 支持大部分的SQL92 標(biāo)準(zhǔn)(see below). 支持命名和未命名的參數(shù)以 UTF-8 和UTF-16 編碼通過(guò)優(yōu)化的管道傳入SQLite 內(nèi)核.
用戶(hù)自定義的函數(shù) 和 排序
全面支持用戶(hù)自定義函數(shù)和排序方式,意味著你可以用自己喜歡的.NET語(yǔ)言來(lái)實(shí)現(xiàn)SQLite沒(méi)有提供的特性. 這一切將非常的簡(jiǎn)單.
提供了全部的源代碼. 100% 免費(fèi).
全部的封裝庫(kù)源代碼都是公有的. 無(wú)論是個(gè)人還是商業(yè)應(yīng)用都沒(méi)有任何的協(xié)議約束.
主頁(yè)地址:http://sqlite.phxsoftware.com/
4、SQLite的管理
管理工具也有不少,建議您使用sqlitemanager,用法酷像phpmyadmin.
可以到 http://sqlitemanager.sourceforge.net/下載 。
SQLite Query Analyzer Documentation :http://www.monkeyshinez.net/SQLiteQA
可惜作者沒(méi)有維護(hù)了,最新的可以參看這篇文章
SQLiteQA3: A SQLite Query Analyzer Clone for Visual Studio 2005 :http://www.eggheadcafe.com/articles/20060803.asp
管理SQLite數(shù)據(jù)庫(kù)的工具SQLite Developer你可以從http://www.sharpplus.com/免費(fèi)下載
5、SQLite 缺省情況下采用 Binary 方式比較字符串,因此我們使用
select * from [user] where [username] = 'Username1'
是找不出 [Username] = 'username1' 這樣記錄的。顯然,這和我們平常使用的 SQL 檢索有所區(qū)別。
解決方法:
創(chuàng)建數(shù)據(jù)庫(kù)時(shí),為目標(biāo)字段添加 "COLLATE NOCASE" 即可。
如:
CREATE TABLE [User]
(
[Username] TEXT NOT NULL COLLATE NOCASE
);
《轉(zhuǎn)》
批注:
1.SQLite開(kāi)源、跨平臺(tái),所以很容易的移植到嵌入式設(shè)備上。
2.有了PHP,.NET等的支持可以取代Access在小型網(wǎng)站中作用。我最近就在寫(xiě)一些SQLite的程序,歡迎討論。
posted on 2007-12-12 23:00
天下無(wú)雙 閱讀(7468)
評(píng)論(10) 編輯 收藏 引用 所屬分類(lèi):
C/C++ 、
嵌入式技術(shù) 、
Linux