位置:首頁 > 數據庫 > SQLite教學 > SQLite 是什麼?

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的)中運行。

曆史:

  1. 2000 -- D. 理查德·希普設計SQLite是為經營程序所需的任何管理的目的。

  2. 2000 -- 在八月的SQLite1.0發布用GNU的數據庫管理器。

  3. 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