簡介
SQLite 是一個軟件庫章蚣,實現(xiàn)了自給自足的兜辞、無服務(wù)器的、零配置的间螟、事務(wù)性的 SQL 數(shù)據(jù)庫引擎吴旋。SQLite 是在世界上最廣泛部署的 SQL 數(shù)據(jù)庫引擎。SQLite 源代碼不受版權(quán)限制厢破。
SQLite是一個進程內(nèi)的庫荣瑟,它是一個零配置的數(shù)據(jù)庫,這意味著與其他數(shù)據(jù)庫一樣摩泪,您不需要在系統(tǒng)中配置笆焰。
就像其他數(shù)據(jù)庫,SQLite 引擎不是一個獨立的進程见坑,可以按應(yīng)用程序需求進行靜態(tài)或動態(tài)連接嚷掠。SQLite 直接訪問其存儲文件狠轻。
特性
- 不需要一個單獨的服務(wù)器進程或操作的系統(tǒng)(無服務(wù)器的)叹话。
- SQLite 不需要配置,這意味著不需要安裝或管理。
- 一個完整的 SQLite 數(shù)據(jù)庫是存儲在一個單一的跨平臺的磁盤文件戴尸。
- SQLite 是非常小的,是輕量級的冤狡,完全配置時小于 400KB孙蒙,省略可選功能配置時小于250KB。
- SQLite 是自給自足的悲雳,這意味著不需要任何外部的依賴挎峦。
- SQLite 事務(wù)是完全兼容 ACID 的,允許從多個進程或線程安全訪問合瓢。
- SQLite 支持 SQL92(SQL2)標(biāo)準(zhǔn)的大多數(shù)查詢語言的功能坦胶。
- SQLite 使用 ANSI-C 編寫的,并提供了簡單和易于使用的 API。
- SQLite 可在 UNIX(Linux, Mac OS-X, Android, iOS)和 Windows(Win32, WinCE, WinRT)中運行顿苇。
局限性
在 SQLite 中峭咒,SQL92 不支持的特性如下所示:
特性 | 描述 |
---|---|
RIGHT OUTER JOIN | 只實現(xiàn)了 LEFT OUTER JOIN。 |
FULL OUTER JOIN | 只實現(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)限。 |
sqliteodbc driver
通過ODBC來訪問操作SQLite數(shù)據(jù)庫需要安裝第三方組件庫的SQLite ODBC Driver缓待,下載地址 https://www.devart.com/odbc/sqlite/download.html
根據(jù)提示完成安裝蚓耽,在控制面板——管理工具——數(shù)據(jù)源(ODBC)中添加ODBC driver for sqlite,并配置數(shù)據(jù)源即可連接旋炒。
sqlite的下載與使用
下載地址:https://www.devart.com/odbc/sqlite/download.html
- 需要下載 sqlite-tools-win32-.zip 和 sqlite-dll-win32-.zip 壓縮文件步悠。
- 創(chuàng)建文件夾 d:\sqlite,并在此文件夾下解壓上面兩個壓縮文件瘫镇,將得到 sqlite3.def鼎兽、sqlite3.dll 和 sqlite3.exe 文件。
- 添加 d:\sqlite 到 PATH 環(huán)境變量铣除,最后在命令提示符下谚咬,使用 sqlite3 命令,將顯示如下結(jié)果尚粘,表明安裝成功择卦。
C:\Users\john>sqlite3
SQLite version 3.22.0 2018-01-22 18:45:57
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite>
sql基本語句
創(chuàng)建數(shù)據(jù)庫
$sqlite3 DatabaseName.db
創(chuàng)建表:
SQLite 的 CREATE TABLE 語句用于在任何給定的數(shù)據(jù)庫創(chuàng)建一個新表。創(chuàng)建基本表郎嫁,涉及到命名表秉继、定義列及每一列的數(shù)據(jù)類型。
CREATE TABLE database_name.table_name(
column1 datatype PRIMARY KEY(one or more columns),
column2 datatype,
column3 datatype,
.....
columnN datatype,
);
刪除表:
DROP TABLE database_name.table_name;
SQLite 的 DROP TABLE 語句用來刪除表定義及其所有相關(guān)數(shù)據(jù)泽铛、索引尚辑、觸發(fā)器、約束和該表的權(quán)限規(guī)范盔腔。增加一條記錄:
INSERT INTO TABLE_NAME [(column1, column2, column3,...columnN)]
VALUES (value1, value2, value3,...valueN);
SQLite 的 INSERT INTO 語句用于向數(shù)據(jù)庫的某個表中添加新的數(shù)據(jù)行杠茬。
查詢語句:
SELECT column1, column2, columnN FROM table_name;
更新記錄:
UPDATE table_name
SET column1 = value1, column2 = value2...., columnN = valueN
WHERE [condition];
- 刪除記錄:
DELETE FROM table_name WHERE [condition];