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