SQLite - 概述



本章幫助您瞭解什麼是SQLite,它與SQL的不同之處,為什麼需要它以及它處理應用程式資料庫的方式。

SQLite是一個軟體庫,它實現了一個自包含的、無伺服器的、零配置的、事務性SQL資料庫引擎。SQLite是最快發展的資料庫引擎之一,但這指的是流行程度的增長,與其大小無關。SQLite的原始碼屬於公共領域。

什麼是SQLite?

SQLite是一個程序內庫,它實現了一個自包含的、無伺服器的、零配置的、事務性SQL資料庫引擎。它是一個零配置的資料庫,這意味著與其他資料庫不同,您不需要在系統中配置它。

SQLite引擎不像其他資料庫那樣是一個獨立的程序,您可以根據需要將其靜態或動態地連結到您的應用程式。SQLite直接訪問其儲存檔案。

為什麼選擇SQLite?

  • SQLite不需要單獨的伺服器程序或系統來執行(無伺服器)。

  • SQLite是零配置的,這意味著不需要設定或管理。

  • 完整的SQLite資料庫儲存在一個單一的跨平臺磁碟檔案中。

  • SQLite非常小巧輕便,完全配置後小於400KiB,或者省略可選功能後小於250KiB。

  • SQLite是自包含的,這意味著沒有外部依賴項。

  • SQLite事務完全符合ACID規範,允許從多個程序或執行緒安全訪問。

  • SQLite支援SQL92(SQL2)標準中大多數查詢語言功能。

  • SQLite是用ANSI-C編寫的,並提供簡單易用的API。

  • SQLite可在UNIX(Linux,Mac OS-X,Android,iOS)和Windows(Win32,WinCE,WinRT)上使用。

SQLite 簡史

  • 2000年 - D. Richard Hipp 設計了SQLite,目的是不需要任何管理即可執行程式。

  • 2000年 - 8月,SQLite 1.0 與GNU資料庫管理器一起釋出。

  • 2011年 - Hipp宣佈向SQLite資料庫新增UNQl介面並開發UNQLite(面向文件的資料庫)。

SQLite 限制

SQLite中有一些SQL92不支援的功能,列在下面的表格中。

序號 功能和描述
1

RIGHT OUTER JOIN

只實現了LEFT OUTER JOIN。

2

FULL OUTER JOIN

只實現了LEFT OUTER JOIN。

3

ALTER TABLE

支援ALTER TABLE命令的RENAME TABLE和ADD COLUMN變體。不支援DROP COLUMN、ALTER COLUMN、ADD CONSTRAINT。

4

觸發器支援

支援FOR EACH ROW觸發器,但不支援FOR EACH STATEMENT觸發器。

5

檢視

SQLite中的檢視是隻讀的。您不能對檢視執行DELETE、INSERT或UPDATE語句。

6

GRANT 和 REVOKE

唯一可以應用的訪問許可權是底層作業系統的普通檔案訪問許可權。

SQLite 命令

與關係資料庫互動的標準SQLite命令類似於SQL。它們是CREATE、SELECT、INSERT、UPDATE、DELETE和DROP。這些命令可以根據其操作性質分為幾組:

DDL - 資料定義語言

序號 命令和描述
1

CREATE

在資料庫中建立一個新表、表的檢視或其他物件。

2

ALTER

修改現有的資料庫物件,例如表。

3

DROP

刪除資料庫中的整個表、表的檢視或其他物件。

DML - 資料操縱語言

序號 命令和描述
1

INSERT

建立記錄

2

UPDATE

修改記錄

3

DELETE

刪除記錄

DQL - 資料查詢語言

序號 命令和描述
1

SELECT

從一個或多個表中檢索某些記錄

廣告