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

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

广告