SQLite 是什麼?
本教學幫助您了解什麼是SQLite,它是如何與SQL不同,為什麼需要它,和它的應用程序數據庫處理方式。
SQLite是一個軟件庫,實現自足,服務器,零配置,事務性的SQL數據庫引擎。SQLite是一個增長最快的數據庫引擎,但是這是人氣,冇有多少增長率。SQLite源代碼是屬於公有領域。
什麼是SQLite?
SQLite是一個過程中的庫,實現自足,服務器,零配置,事務性的SQL數據庫引擎。它是一個數據庫,它是零配置,這意味著其他數據庫一樣,不需要在係統中配置。
像其他數據庫,SQLite引擎不是一個獨立的過程,可以按應用程序要求連結靜態或動態。 SQLite 直接訪問其存儲文件。
為什麼要用SQLite?
-
SQLite不需要一個單獨的服務器進程或係統操作(服務器)。
-
SQLite 不需要配置,這意味著冇有需要安裝或管理。
-
一個完整的SQLite數據庫存儲在一個單一的跨平台的磁盤文件。
-
SQLite是非常小,重量輕,小於400KiB完全配置或小於250KiB的省略可選功能。
-
SQLite是自足的,這意味著不需要任何外部的依賴。
-
SQLite的交易是完全符合ACID,允許多個進程或線程安全訪問。
-
SQLite支持大多數(SQL2)符合SQL92標準的查詢語言功能。
-
SQLite是在ANSI-C編寫的,並提供了簡單和易於使用的API。
-
SQLite可在UNIX(在Linux,Mac OS-X,Android,IOS)和Windows(Win32中,WINCE,WinRT的)中運行。
曆史:
-
2000 -- D. 理查德·希普設計SQLite是為經營程序所需的任何管理的目的。
-
2000 -- 在八月的SQLite1.0發布用GNU的數據庫管理器。
-
2011 -- 希普(Hipp)宣布,以添加UNQl的接口SQLite的DB和發展UNQLite(麵向文檔的數據庫)。
SQLite的局限性:
有幾個SQL92 的在SQLite中不支持的功能如下所示:
特性 | 描述 |
---|---|
RIGHT OUTER JOIN | Only LEFT OUTER JOIN is implemented. |
FULL OUTER JOIN | Only LEFT OUTER JOIN is implemented. |
ALTER TABLE | The RENAME TABLE and ADD COLUMN variants of the ALTER TABLE command are supported. The DROP COLUMN, ALTER COLUMN, ADD CONSTRAINT not supported. |
Trigger support | FOR EACH ROW triggers are supported but not FOR EACH STATEMENT triggers. |
VIEWs | VIEWs in SQLite are read-only. You may not execute a DELETE, INSERT, or UPDATE statement on a view. |
GRANT and REVOKE | The only access permissions that can be applied are the normal file access permissions of the underlying operating system. |
SQLite的命令:
類似SQL與關係數據庫進行交互的標準SQLite命令。他們創建 CREATE, SELECT, INSERT, UPDATE, DELETE 和 DROP。這些命令組基於其業務性質可分為:
DDL - 數據定義語言:
命令 | 描述 |
---|---|
CREATE | Creates a new table, a view of a table, or other object in database |
ALTER | Modifies an existing database object, such as a table. |
DROP | Deletes an entire table, a view of a table or other object in the database. |
DML - 數據操縱語言:
命令 | 描述 |
---|---|
INSERT | Creates a record |
UPDATE | Modifies records |
DELETE | Deletes records |
DQL - 數據查詢語言:
命令 | 描述 |
---|---|
SELECT | Retrieves certain records from one or more tables |