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