什么是 SQLite?
SQLite 是一个关系数据库管理系统。它最初是在 2000 年 8 月设计的。它是一个开源软件。
- SQLite 非常轻量级;它小于 500Kb 大小。与 SQL Server 或 Oracle 等其他数据库管理系统不同。
- SQLite 不是客户端-服务器数据库管理系统:它是一个内存库,您可以调用它并直接使用它,无需安装和配置。
- 典型的 SQLite 数据库将包含在计算机磁盘存储上的单个文件中,所有数据库对象(表、视图、触发器等)都包含在该文件中,不需要专用服务器。
SQLite 性能 - 为什么以及何时使用 SQLite?
何时使用 SQLite:
- 每当您需要轻量级数据库时,如果您正在为电视、手机、相机、家用电子设备等设备开发嵌入式软件,那么 SQLite 是一个不错的选择。
- 如果您想管理网站的复杂会话信息,SQLite 可以处理低到中等流量的 HTTP 请求。
- 当您需要存储文件存档时,与常规 ZIP 存档相比,SQLite 可以生成更小尺寸的存档和包含大量元数据。
- 如果要对应用程序中的某些数据进行一些处理,可以使用 SQLite 作为临时数据集。您可以将数据加载到 SQLite 内存数据库中,并按照您想要的方式进行查询。您可以按照您希望的方式将数据提取回您的应用程序。
- 它为您提供了一种简单有效的方法来处理数据,而不是在内存变量内部进行数据处理。例如,如果您正在开发一个程序,并且您有一些想要对其进行计算的记录。然后你可以创建一个 SQLite 数据库并在 那里插入记录,只需一个查询,你就可以选择记录并直接对它们进行计算。
- 当您需要一个用于学习和培训目的的数据库系统时,SQLite 非常适合。正如我们所解释的,不需要安装和配置。只需将 SQLite 库复制到您的计算机中即可创建数据库。
为什么要使用 SQLite:
- 它完全免费——SQLite 是一个开源软件,使用它不需要许可证。
- SQLite 是跨平台的数据库管理系统;它可以在广泛的不同平台上使用,如 Windows、Mac OS、Linux 和 Unix。它还可以用于许多嵌入式操作系统,如 Symbian 和 Windows CE。
- SQLite 提供了一种有效的数据存储方式,列的长度是可变的,不是固定的。所以 SQLite 只会分配一个字段需要的空间。例如,如果您有一个 varchar(200) 列,并且在其上放置了 10 个字符的长度值,那么 SQLite 将仅为该值分配 20 个字符的空间,而不是整个 200 个空间。
- 范围广泛的 SQLite API – SQLite 为广泛的编程语言提供 API,例如 .Net 语言(Visual Basic、C#)、PHP、Java、Objective C、Python 和许多其他编程语言。
- SQLite 非常灵活。
- SQLite 变量是动态类型的,这意味着变量的类型在被赋值之前不会被确定,而不是在声明中。
- INSERT ON CONFLICT REPLACE 语句。使用此语句,您可以告诉 SQLite 尝试对表进行插入,如果找到具有相同主键的行,则使用插入值中的值更新它们。
- 使用 SQLite,您可以同时在同一个会话中处理多个数据库。只需附加这些数据库,然后您就可以同时访问所有数据库的对象(表、视图等)。
SQLite 限制和不支持的功能
以下是 SQLite 中不受支持的功能和限制的列表:
- SQLite 既不支持 RIGHT OUTER JOIN 也不支持 FULL OUTER JOIN。它仅支持 LEFT OUTER JOIN。
- ALTER table 语句的限制:使用 SQLite 中的 ALTER TABLE 语句,您只能添加列或重命名表(我们将在以下教程中看到)。但是,您不能执行以下操作:
- 更改列。
- 删除一列。
- 添加约束。
- VIEW 是只读的——您不能将 INSERT、DELETE 或 UPDATE 语句写入视图。但是,您可以在视图上创建触发器并在其中执行 INSERT、DELETE 或 UPDATE 语句。
- GRANT 和 REVOKE 命令未在 SQLite 中实现。SQLite 中只实现了普通的文件访问权限。这是因为 SQLite 读取和写入磁盘文件,与其他数据库管理系统不同。
- 触发器——正如我们将在即将到来的教程中看到的,SQLite 只支持 FOR EACH ROW 触发器,它不支持 FOR EACH STATEMENT 触发器。