SQLite简介
? ? ? ? SQLite是一个进程内的轻量级 的开源 的嵌入式 数据库,嵌入式。它的数据库就是一个文件,实现了自给自足、无服务器、零配置的、事务性的SQL数据库引擎。 ? ? ? ? SQLite是一个零配置的数据库,且与其他数据库的最大的区别:SQLite不需要在系统中配置,直接可以使用。就像其它数据库,SQLite不是一个独立的进程,可以按应用程序需求进行静态或动态连接。SQLite可直接访问其存储文件。 ? ? ? ? SQLite使用方便,性能优良,在消费电子、医疗、工业控制、军事等领域有广泛应用。
SQLite的优势
-
SQLite 不需要配置,即不需要安装或管理。 -
不需要一个单独的服务器进程或操作的系统(无服务器的)。 -
一个完整的 SQLite 数据库是存储在一个单一的跨平台的磁盘文件。 -
SQLite 的体积小,最低只需要几百K的内存就可以运行。其是轻量级的,完全配置时小于 400KiB,省略可选功能配置时小于250KiB。 -
SQLite 是自给自足的,这意味着不需要任何外部的依赖。 -
SQLite 事务是完全兼容 ACID 的,允许从多个进程或线程安全访问。 -
SQL支持:SQLite 支持ANSI SQL92(SQL2)标准的大多数查询语言的功能。提供了对子查询、视图、触发器等机制的支持。 -
接口:SQLite 使用 ANSI-C 编写的,并为C、Java、PHP、Python等多种语言提供了简单和易于使用的 API。所有的应用程序都必须通过接口访问SQLite数据库。 -
可移植性强:SQLite 可在 UNIX(Linux, Mac OS-X, Android, iOS)和 Windows(Win32, WinCE, WinRT)等软件平台中运行。
SQLite 局限性
在 SQLite 中,SQL92 不支持的特性如下所示:
特性 | 描述 |
---|
RIGHT OUTER JOIN | 只实现了 LEFT OUTER JOIN。 | FULL OUTER JOIN | 只实现了 LEFT OUTER JOIN。 | ALTER TABLE | 支持 RENAME TABLE 和 ALTER TABLE 的 ADD COLUMN variants 命令,不支持 DROP COLUMN、ALTER COLUMN、ADD CONSTRAINT。 | Trigger 支持 | 支持 FOR EACH ROW 触发器,但不支持 FOR EACH STATEMENT 触发器。 | VIEWs | 在 SQLite 中,视图是只读的。您不可以在视图上执行 DELETE、INSERT 或 UPDATE 语句。 | GRANT 和 REVOKE | 可以应用的唯一的访问权限是底层操作系统的正常文件访问权限。 |
SQLite 命令
? ? ? ? 与关系数据库进行交互的标准 SQLite 命令类似于 SQL。命令包括 CREATE、ALTER、DROP 、INSERT、UPDATE、DELETE和 SELECT,其基于它们的操作性质可分为DDL、DML、DQL三种,如下所示: DDL - 数据定义语言
命令 | 描述 |
---|
CREATE | 创建一个新的表/一个表的视图/数据库中的其他对象 | ALTER | 修改数据库中的某个已有的数据库对象,比如一个表 | DROP | 删除整个表/表的视图/数据库中的其他对象 |
DML - 数据操作语言
命令 | 描述 |
---|
INSERT | 创建一条记录 | UPDATE | 修改记录 | DELETE | 删除记录 |
DQL - 数据查询语言
SQLite3支持的基本数据类型主要有以下几类:
| |
---|
.NULL | blob | .INTEGER | int | .REAL | float、double | .TEXT | char、varchar | .NUMERIC | 其余 |
|