嵌入式數據庫SQLite的基本使用

1.SQLite的優點

SQLite是一個非常輕量級自包含(lightweight and self-contained)的DBMS,它可移植性好,很容易使用,很小,高效而且可靠。SQLite嵌入到使用它的應用程序中,它們共用相同的進程空間,而不是單獨的一個進程。從外部看,它並不像一個RDBMS,但在進程內部,它卻是完整的,自包含的數據庫引擎。

嵌入式數據庫的一大好處就是在你的程序內部不需要網絡配置,也不需要管理。因爲客戶端和服務器在同一進程空間運行。SQLite 的數據庫權限只依賴於文件系統,沒有用戶帳戶的概念。SQLite 有數據庫級鎖定,沒有網絡服務器。它需要的內存,其它開銷很小,適合用於嵌入式設備。你需要做的僅僅是把它正確的編譯到你的程序。

2.常用命令介紹

2.1.sqlite3 指令(通常以 . 開頭)

2.1.1創建或打開一個數據庫文件
在終端下運行 sqlite3 name.db 指令,<name.db> 是要打開的數據庫文件。若該文件不存在,則自動創建。name爲數據庫名稱。
在這裏插入圖片描述
由於其他的命令在創建之後便比較簡單,這裏就不一一舉例,大概有下列命令;

  1. 顯示當前打開的數據庫文件:sqlite > .database。
  2. 顯示數據庫中所有表名:sqlite > .tables。
  3. 查看錶的結構:sqlite > .schema <table_name>。
  4. 顯示所有命令:sqlite > .help。
  5. 退出 sqlite3:sqlite > .quit。
2.2SQL命令(每個命令以 ;結束)

2.2.1.創建新表

sqlite > create table <table_name> (f1 type1, f2 type2,...);

在這裏插入圖片描述
type爲數據類型:NULL,INTEGER,REAL,TEXT,BLOB
注意:若未指定類型,默認是字符串,向表中添加新紀錄時要加 “”;

2.2.2.刪除表

 sqlite > drop table <table_name>;

在這裏插入圖片描述
從上圖可以看到,我又重新創建了一個表user3,執行刪除命令後,就只有usr2表了。

後面更多的命令使用方法和上面兩個相同,我就不一一舉例了:

  1. 查詢表中所有記錄sqlite >select * from <table_name>;
  2. 按指定條件查詢表中記錄sqlite >select * from <table_name> where <expression>;
  3. 向表中添加新紀錄sqlite >insert into <table_name> values(value1,value2,...);
  4. 按指定的條件刪除表中記錄sqlite >delete from <table_name> where <expression>;
  5. 更新表中記錄sqlite > updata <table_name> set <f1=value1>,<f2=value2>... where <expression>;
  6. 在表中添加字段sqlite > alter table <table> add column <field><type> defalut... ;

3.SQLite編程函數

3.1sqlite3_open()

函數原型:

int sqlite3_open(const char *fileName, sqlite3 **ppDB); 

函數功能:打開一個數據庫;若該數據庫文件不存在,則自動創建。打開或者創建數據庫的命令會被緩存,直到這個數據庫真正被調用的時候纔會被執行。

輸入參數:fileName,待打開的數據庫文件名稱,包括路徑,以’\0’結尾;特別說明:SQLite支持內存數據庫,內存方式存儲使用文件名“:memory:”

輸出參數:ppDB,返回打開的數據庫句柄;

返回值:執行成功返回SQLITE_OK,否則返回其他值;

3.2sqlite3_close()

函數原型:

int sqlite3_close(sqlite3 *pDB);

函數功能:關閉一個打開的數據庫;

輸入參數:pDB,打開的數據庫句柄;

輸出參數:無

返回值:執行成功返回SQLITE_OK,否則返回其他值;

3.3sqlite3_errmsg()

函數原型:

const char *sqlite3_errmsg(sqlite3 *pDB);

函數功能:獲取最近調用的API接口返回的錯誤說明,這些錯誤信息UTF-8的編碼返回,並且在下一次調用任何SQLiteAPI函數時被自動清除;

輸入參數:pDB,打開的數據庫句柄

輸出參數:無

返回值:錯誤說明的字符串指針

3.4sqlite3_exec()

函數原型:

int sqlite3_exec(sqlite3 *pDB,constchar *sql, sqlite_callback callback,void *para,char **errMsg);

函數功能:編譯和執行零個或多個SQL語句,查詢的結果返回給回調函數callback。

輸入參數:pDB,數據庫句柄;sql,待執行的SQL語句字符串,以’\0’結尾;callback,回調函數,用來處理查詢結果,如果不需要回調(比如做insert或者delete操作時),可輸入NULL;para,用戶傳入的參數,可以爲NULL,該參數指針最終會被傳給回調函數callback,供用戶在回調函數中使用;

輸出參數:errMsg,返回錯誤信息,注意是指針的指針。

返回值:執行成功返回SQLITE_OK,否則返回其他值。

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