本章可幫助您了解什么是SQLite,它與SQL有何不同,為什么需要它以及它處理應用程序數(shù)據(jù)庫的方式。
SQLite是一個軟件庫,它實現(xiàn)了一個自包含、無服務器、零配置、事務性SQL數(shù)據(jù)庫引擎。SQLite是目前增長最快的數(shù)據(jù)庫引擎之一,但這是受歡迎程度的增長,與它的規(guī)模無關。SQLite的源代碼在公共域中。
SQLite是一個進程內庫,可實現(xiàn)自包含的,無服務器的,零配置的事務型SQL數(shù)據(jù)庫引擎。它是一個零配置的數(shù)據(jù)庫,這意味著像其他數(shù)據(jù)庫一樣,您無需在系統(tǒng)中對其進行配置。
SQLite引擎不是一個獨立于其他數(shù)據(jù)庫的獨立進程,您可以根據(jù)需要將其靜態(tài)或動態(tài)鏈接到應用程序。SQLite直接訪問其存儲文件。
SQLite不需要單獨的服務器進程或系統(tǒng)即可運行(無服務器)。
SQLite帶有零配置,這意味著不需要設置或管理。
完整的SQLite數(shù)據(jù)庫存儲在單個跨平臺磁盤文件中。
SQLite非常小且重量輕,完全配置的內存小于400KiB,而省略的可選功能則小于250KiB。
SQLite是獨立的,這意味著沒有外部依賴關系。
SQLite事務完全符合ACID,從而允許從多個進程或線程進行安全訪問。
SQLite支持SQL92(SQL2)標準中的大多數(shù)查詢語言功能。
SQLite用ANSI-C編寫,提供簡單易用的API。
SQLite在UNIX(Linux,Mac OS-X,Android,iOS)和Windows(Win32,WinCE,WinRT)上可用。
2000年-D.理查德·希普(R. Richard Hipp)設計SQLite的目的是無需管理程序即可運行程序。
2000年-8月,SQLite 1.0與GNU數(shù)據(jù)庫管理器一起發(fā)布。
2011年-Hipp宣布將UNQl接口添加到SQLite DB并開發(fā)UNQLite(面向文檔的數(shù)據(jù)庫)。
下表列出了 SQLite 中幾個不受支持的 SQL92特性。
序號 | 功能與說明 |
---|---|
1 | RIGHT OUTER JOIN 僅實現(xiàn)了LEFT OUTER JOIN。 |
2 | FULL OUTER JOIN 僅實現(xiàn)了LEFT OUTER JOIN。 |
3 | ALTER TABLE 支持ALTER TABLE命令的RENAME TABLE和ADD COLUMN變體。不支持DROP COLUMN,ALTER COLUMN,ADD CONSTRAINT。 |
4 | Trigger support 支持FOR EACH ROW觸發(fā)器,但不支持FOR EACH STATEMENT觸發(fā)器。 |
5 | VIEWs SQLite中的VIEW是只讀的。您可能無法在視圖上執(zhí)行DELETE,INSERT或UPDATE語句。 |
6 | GRANT and REVOKE 唯一可以應用的訪問權限是基礎操作系統(tǒng)的普通文件訪問權限。 |
與關系數(shù)據(jù)庫進行交互的標準SQLite命令類似于SQL。它們是CREATE,SELECT,INSERT,UPDATE,DELETE和DROP。這些命令可以根據(jù)其操作性質分為幾類-
序號 | 命令與說明 |
---|---|
1 | CREATE 在數(shù)據(jù)庫中創(chuàng)建新表,表視圖或其他對象。 |
2 | ALTER 修改現(xiàn)有的數(shù)據(jù)庫對象,例如表。 |
3 | DROP 刪除整個表,數(shù)據(jù)庫表的視圖或其他對象。 |
序號 | 命令與說明 |
---|---|
1 | INSERT 創(chuàng)建一條記錄 |
2 | UPDATE 修改記錄 |
3 | DELETE 刪除記錄 |
序號 | 命令與說明 |
---|---|
1 | SELECT 從一個或多個表中檢索某些記錄 |