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 DB添加UNQl接口并开发UNQLite(面向文档的数据库)。

SQLite 的限制

SQLite 中有一些不支持的 SQL92 功能,如下表所列。

先生。 特点及描述
1

右外连接

仅实现了 LEFT OUTER JOIN。

2

全外连接

仅实现了 LEFT OUTER JOIN。

3

修改表

支持 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

授予和撤销

唯一可以应用的访问权限是底层操作系统的正常文件访问权限。

SQLite命令

与关系数据库交互的标准 SQLite 命令与 SQL 类似。它们是创建、选择、插入、更新、删除和删除。这些命令可以根据其操作性质分为几组 -

DDL - 数据定义语言

先生。 命令与说明
1

创造

创建新表、表视图或数据库中的其他对象。

2

改变

修改现有数据库对象,例如表。

3

降低

删除整个表、表的视图或数据库中的其他对象。

DML - 数据操作语言

先生。 命令与说明
1

插入

创建记录

2

更新

修改记录

3

删除

删除记录

DQL - 数据查询语言

先生。 命令与说明
1

选择

从一个或多个表中检索某些记录