Sqlite 简明教程

SQLite - Overview

本章帮助你理解什么是 SQLite,它与 SQL 的区别,为什么需要它,以及它如何处理应用程序数据库。

SQLite 是一个实现一个独立的、无服务器的、零配置的、事务型 SQL 数据库引擎的软件库。SQLite 是周围发展最快的数据库引擎之一,但这仅仅是流行程度的增长,与它的规模无关。SQLite 的源代码是公有域的。

What is SQLite?

SQLite 是一个实现独立的、无服务器的、零配置的、事务型 SQL 数据库引擎的进程内库。它是一个数据库,零配置,意味着和其他的数据库不同,你不需要在系统中配置它。

SQLite 引擎不是一个像其他数据库一样的独立进程,你可以根据你的需求与你的应用程序静态或动态地链接它。SQLite 直接访问它的存储文件。

Why SQLite?

  1. SQLite 不要求一个单独的服务器进程或系统来操作(无服务器的)。

  2. SQLite 具有零配置,这意味着不需要设置或管理。

  3. 一个完整的 SQLite 数据库存储在一个单一跨平台磁盘文件中。

  4. SQLite 体积非常小且轻量级,完全配置后不到 400KiB,或者在省略可选功能时不到 250KiB。

  5. SQLite 是独立的,这意味着没有外部依赖。

  6. SQLite 事务完全符合 ACID,允许多个进程或线程安全访问。

  7. SQLite 支持 SQL92 (SQL2) 标准中发现的大多数查询语言特征。

  8. SQLite 是用 ANSI-C 编写的,并提供了简单易用的 API。

  9. SQLite 可用于 UNIX(Linux、Mac OS-X、Android、iOS)和 Windows(Win32、WinCE、WinRT)。

SQLite A Brief History

  1. 2000 年 - D. Richard Hipp 设计了 SQLite,其目的是无需管理即可操作程序。

  2. 2000 年 - 8 月,SQLite 1.0 与 GNU 数据库管理器一起发布。

  3. 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 删除表、表视图或数据库中的其他对象。

DML - Data Manipulation Language

Sr.No.

Command & Description

1

INSERT Creates a record

2

UPDATE Modifies records

3

DELETE Deletes records

DQL - Data Query Language

Sr.No.

Command & Description

1

SELECT 从一张或多张表中检索特定记录