Sqlite 简明教程
SQLite - Overview
本章帮助你理解什么是 SQLite,它与 SQL 的区别,为什么需要它,以及它如何处理应用程序数据库。
SQLite 是一个实现一个独立的、无服务器的、零配置的、事务型 SQL 数据库引擎的软件库。SQLite 是周围发展最快的数据库引擎之一,但这仅仅是流行程度的增长,与它的规模无关。SQLite 的源代码是公有域的。
What is SQLite?
SQLite 是一个实现独立的、无服务器的、零配置的、事务型 SQL 数据库引擎的进程内库。它是一个数据库,零配置,意味着和其他的数据库不同,你不需要在系统中配置它。
SQLite 引擎不是一个像其他数据库一样的独立进程,你可以根据你的需求与你的应用程序静态或动态地链接它。SQLite 直接访问它的存储文件。
Why 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 A Brief History
-
2000 年 - D. Richard Hipp 设计了 SQLite,其目的是无需管理即可操作程序。
-
2000 年 - 8 月,SQLite 1.0 与 GNU 数据库管理器一起发布。
-
2011 年 - Hipp 宣布将 UNQl 接口添加到 SQLite DB 并开发 UNQLite(面向文档的数据库)。
SQLite Limitations
SQLite 中有一些不受 SQL92 支持的功能,如下表所示。
Sr.No. |
Feature & Description |
1 |
RIGHT OUTER JOIN 仅实现了左外联接。 |
2 |
FULL 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 Commands
与关系数据库交互的标准 SQLite 命令类似于 SQL。它们是 CREATE、SELECT、INSERT、UPDATE、DELETE 和 DROP。可以根据操作性质将这些命令分类为不同的组 −
DDL - Data Definition Language
Sr.No. |
Command & Description |
1 |
CREATE 为数据库中的表、表视图或其他对象创建一个新表。 |
2 |
ALTER 修改现有的数据库对象(例如,表)。 |
3 |
DROP 删除表、表视图或数据库中的其他对象。 |