使用SQLite很簡單,不需要讀很多文檔,也不需要做很多配置。
一、下載源代碼 Download The Code
從http://www.sqlite.org/download.html下載程序,也可以下載源代碼自己編譯。
下載Windows下的預編譯二進制文件包:
- sqlite-shell-win32-x86-<build#>.zip
- sqlite-dll-win32-x86-<build#>.zip
注:<build#>是SQLite的編譯版本號。
將 zip 文件解壓到你的磁盤,并將解壓后的目錄添加到系統(tǒng)的 PATH 變量中,以方便在命令行中執(zhí)行 sqlite 命令。
可選: 如果你計劃發(fā)布基于 sqlite 數(shù)據(jù)庫的應用程序,你還需要下載源碼以便編譯和利用其 API
sqlite-amalgamation-<build#>.zip
二、創(chuàng)建數(shù)據(jù)庫 Create A New Database
安裝好SQLite后,在命令窗口中進入到SQLite3.exe所在的目錄,輸入以下命令:
1: D:\SQLite>sqlite3 test.db
注:我的SQLite放在了D:\SQLite中。若配置了環(huán)境變量,則可以在命令窗口中直接輸入:
1: sqlite3 test.db
在命令窗口中輸入SQL命令,去創(chuàng)建和填寫這個新的數(shù)據(jù)庫。
注意: 最少必須為新建的數(shù)據(jù)庫創(chuàng)建一個表或者視圖,這么才能將數(shù)據(jù)庫保存到磁盤中,否則數(shù)據(jù)庫不會被創(chuàng)建。
三、使用SQLite編程 Write Programs That Use SQLite
如下所示為怎么使用C/C++接口的簡單程序。
1: #include <stdio.h>
2: #include <sqlite3.h>
3:
4: static int callback(void *NotUsed, int argc, char **argv, char **azColName){
5: int i;
6: for(i=0; i<argc; i++){
7: printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
8: }
9: printf("\n");
10: return 0;
11: }
12:
13: int main(int argc, char **argv){
14: sqlite3 *db;
15: char *zErrMsg = 0;
16: int rc;
17:
18: if( argc!=3 ){
19: fprintf(stderr, "Usage: %s DATABASE SQL-STATEMENT\n", argv[0]);
20: return(1);
21: }
22: rc = sqlite3_open(argv[1], &db);
23: if( rc ){
24: fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
25: sqlite3_close(db);
26: return(1);
27: }
28: rc = sqlite3_exec(db, argv[2], callback, 0, &zErrMsg);
29: if( rc!=SQLITE_OK ){
30: fprintf(stderr, "SQL error: %s\n", zErrMsg);
31: sqlite3_free(zErrMsg);
32: }
33: sqlite3_close(db);
34: return 0;
35: }
數(shù)據(jù)庫的名稱由第一個參數(shù)指定,第二個參數(shù)可以是一個或多個SQL語句。需要注意的是在22行調用函數(shù)sqilte3_open()用來打開數(shù)據(jù)庫。28行調用的函數(shù)sqlite3_exec()是用來執(zhí)行SQL命令。33行調用函數(shù)sqlite3_close()用來關閉數(shù)據(jù)庫。
關于SQLite更多的C/C++接口函數(shù)可以參考《Introduction To The SQLite C/C++ Interface》。