SQLite – 概述
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 宣布将 UNQl 接口添加到 SQLite DB 并开发 UNQLite(面向文档的数据库)。
SQLite 限制
SQLite 中很少有 SQL92 不受支持的功能,如下表所示。
Sr.No. | 功能和描述 |
---|---|
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 |
Trigger support 支持 FOR EACH ROW 触发器,但不支持 FOR EACH STATEMENT 触发器。 |
5 |
VIEWs SQLite 中的视图是只读的。您不能对视图执行 DELETE、INSERT 或 UPDATE 语句。 |
6 |
GRANT and REVOKE 唯一可以应用的访问权限是底层操作系统的普通文件访问权限。 |
SQLite 命令
与关系数据库交互的标准 SQLite 命令类似于 SQL。它们是创建、选择、插入、更新、删除和删除。这些命令可以根据其操作性质分为几组 –
DDL – 数据定义语言
Sr.No. | 命令和描述 |
---|---|
1 |
CREATE 在数据库中创建新表、表视图或其他对象。 |
2 |
ALTER 修改现有的数据库对象,例如表。 |
3 |
DROP 删除整个表、表的视图或数据库中的其他对象。 |
DML – 数据操作语言
Sr.No. | 命令和描述 |
---|---|
1 |
INSERT 创建记录 |
2 |
UPDATE 修改记录 |
3 |
DELETE 删除记录 |
DQL – 数据查询语言
Sr.No. | 命令和描述 |
---|---|
1 |
SELECT 从一个或多个表中检索某些记录 |