SQLite 教程
SQLite,是一款輕型的數(shù)據(jù)庫,是遵守ACID的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它包含在一個相對小的C庫中。它是D.RichardHipp建立的公有領(lǐng)域項目。它的設(shè)計目標(biāo)是嵌入式的,而且已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它占用資源非常的低,在嵌入式設(shè)備中,可能只需要幾百K的內(nèi)存就夠了。它能夠支持Windows/Linux/Unix等等主流的操作系統(tǒng),同時能夠跟很多程序語言相結(jié)合,比如 Tcl、C#、PHP、Java等,還有ODBC接口,同樣比起Mysql、PostgreSQL這兩款開源的世界著名數(shù)據(jù)庫管理系統(tǒng)來講,它的處理速度比他們都快。SQLite第一個Alpha版本誕生于2000年5月。 至2019年已經(jīng)有19個年頭,SQLite也迎來了一個版本 SQLite 3已經(jīng)發(fā)布。(百度百科 )
SQLite是一個進(jìn)程內(nèi)的庫,實(shí)現(xiàn)了自給自足的、無服務(wù)器的、零配置的、事務(wù)性的 SQL 數(shù)據(jù)庫引擎。它是一個零配置的數(shù)據(jù)庫,這意味著與其他數(shù)據(jù)庫不一樣,您不需要在系統(tǒng)中配置。
就像其他數(shù)據(jù)庫,SQLite 引擎不是一個獨(dú)立的進(jìn)程,可以按應(yīng)用程序需求進(jìn)行靜態(tài)或動態(tài)連接。SQLite 直接訪問其存儲文件。
不需要一個單獨(dú)的服務(wù)器進(jìn)程或操作的系統(tǒng)(無服務(wù)器的)。
SQLite 不需要配置,這意味著不需要安裝或管理。
一個完整的 SQLite 數(shù)據(jù)庫是存儲在一個單一的跨平臺的磁盤文件。
SQLite 是非常小的,是輕量級的,完全配置時小于 400KiB,省略可選功能配置時小于250KiB。
SQLite 是自給自足的,這意味著不需要任何外部的依賴。
SQLite 事務(wù)是完全兼容 ACID 的,允許從多個進(jìn)程或線程安全訪問。
SQLite 支持 SQL92(SQL2)標(biāo)準(zhǔn)的大多數(shù)查詢語言的功能。
SQLite 使用 ANSI-C 編寫的,并提供了簡單和易于使用的 API。
SQLite 可在 UNIX(Linux, Mac OS-X, Android, iOS)和 Windows(Win32, WinCE, WinRT)中運(yùn)行。
2000 -- D. Richard Hipp 設(shè)計 SQLite 是為了不需要管理即可操作程序。
2000 -- 在八月,SQLite1.0 發(fā)布 GNU 數(shù)據(jù)庫管理器(GNU Database Manager)。
2011 -- Hipp 宣布,向 SQLite DB 添加 UNQl 接口,開發(fā) UNQLite(面向文檔的數(shù)據(jù)庫)。
在 SQLite 中,SQL92 不支持的特性如下所示:
特性 | 描述 |
---|---|
RIGHT OUTER JOIN | 只實(shí)現(xiàn)了 LEFT OUTER JOIN。 |
FULL OUTER JOIN | 只實(shí)現(xiàn)了 LEFT OUTER JOIN。 |
ALTER TABLE | 支持 RENAME TABLE 和 ALTER TABLE 的 ADD COLUMN variants 命令,不支持 DROP COLUMN、ALTER COLUMN、ADD CONSTRAINT。 |
Trigger 支持 | 支持 FOR EACH ROW 觸發(fā)器,但不支持 FOR EACH STATEMENT 觸發(fā)器。 |
VIEWs | 在 SQLite 中,視圖是只讀的。您不可以在視圖上執(zhí)行 DELETE、INSERT 或 UPDATE 語句。 |
GRANT 和 REVOKE | 可以應(yīng)用的唯一的訪問權(quán)限是底層操作系統(tǒng)的正常文件訪問權(quán)限。 |
與關(guān)系數(shù)據(jù)庫進(jìn)行交互的標(biāo)準(zhǔn) SQLite 命令類似于 SQL。命令包括 CREATE、SELECT、INSERT、UPDATE、DELETE 和 DROP。這些命令基于它們的操作性質(zhì)可分為以下幾種:
命令 | 描述 |
---|---|
CREATE | 創(chuàng)建一個新的表,一個表的視圖,或者數(shù)據(jù)庫中的其他對象。 |
ALTER | 修改數(shù)據(jù)庫中的某個已有的數(shù)據(jù)庫對象,比如一個表。 |
DROP | 刪除整個表,或者表的視圖,或者數(shù)據(jù)庫中的其他對象。 |
命令 | 描述 |
---|---|
INSERT | 創(chuàng)建一條記錄。 |
UPDATE | 修改記錄。 |
DELETE | 刪除記錄。 |
命令 | 描述 |
---|---|
SELECT | 從一個或多個表中檢索某些記錄。 |