文档
- ▼文件列表和索引
- ▼概述文档
- 关于 SQLite → 高级概述什么是 SQLite 以及您可能对使用它感兴趣的原因。
- SQLite 的适当用途 → 本文档描述了 SQLite 是适合使用的数据库引擎的情况,以及客户端/服务器数据库引擎可能是更好选择的情况。
- Distinctive Features → 本文档列举并描述了 SQLite 与其他 SQL 数据库引擎不同的一些特性。
- SQLite 的怪癖 → 本文档简要列出了 SQLite 的一些不寻常的特性,这些特性往往会引起误解和混淆。该列表包括有意的创新和仅为向后兼容而保留的“错误功能”。
- SQLite 是如何测试 的 → SQLite 的可靠性和健壮性在很大程度上是通过彻底和仔细的测试来实现的。本文档确定了在每次 SQLite 发布之前进行的许多测试。
- 版权所有 → SQLite 属于公共领域。本文档描述了这意味着什么以及对贡献者的影响。
- 常见问题 → 文档的标题说明了所有...
- 关于 SQLite 的书籍 → 关于 SQLite 的独立书籍列表。
- ▼编程接口
- SQLite In 5 Minutes Or Less → 对使用 SQLite 进行编程的快速介绍。
- C/C++ API 简介 → 本文档介绍了 C/C++ API。用户应该在下面链接的 C/C++ API 参考指南之前阅读本文档。
- 如何编译 SQLite → 编译 SQLite C 代码并将该代码与您自己的应用程序集成的说明和提示。
- C/C++ API 参考 → 本文档分别描述了每个 API 函数。
- 结果和错误代码 → 各种 C/C++ 接口返回的数字结果代码的含义的描述。
- SQL 语法 → 本文档描述了 SQLite 可以理解的 SQL 语言。
- Pragma 命令 → 本文档描述了 SQLite 性能调整选项和其他专用数据库命令。
- 核心 SQL 函数 → 通用内置标量 SQL 函数。
- 聚合 SQL 函数 → 通用内置聚合 SQL 函数。
- 日期和时间 SQL 函数 → 用于操作日期和时间的 SQL 函数。
- 窗口函数 → SQL 窗口函数。
- 生成的列 → 表定义中的存储列和虚拟列。
- System.Data.SQLite → SQLite 的 C#/.NET 绑定
- Tcl API → SQLite 的 TCL 接口绑定的描述。
- DataTypes → SQLite 版本 3 引入了清单类型的概念,其中值的类型与值本身相关联,而不是它存储在其中的列。此页面更详细地描述了 SQLite 版本 3 的数据类型。
- ▼扩展
- Json1 - JSON 集成 → 用于创建、解析和查询 JSON 内容的 SQL 函数。
- FTS5 - 全文搜索 → SQLite 全文搜索 (FTS5) 扩展的描述。
- FTS3 - 全文搜索 → SQLite 全文搜索 (FTS3) 扩展的描述。
- R-Tree 模块 → SQLite R-Tree 扩展的描述。R-Tree 是一种专门的数据结构,支持地理空间系统中经常使用的快速多维范围查询。
- 会话 → 会话扩展允许将对 SQLite 数据库的更改捕获在一个紧凑的文件中,该文件可以在原始数据库上恢复(以实现“撤消”)或传输并应用于另一个类似的数据库。
- 运行时可加载扩展 → 关于运行时可加载扩展如何工作、如何编译以及开发人员如何为 SQLite 创建自己的运行时可加载扩展的一般概述。
- SQLite Android 绑定 → 有关如何在 Android 上部署您自己的 SQLite 私有副本的信息,绕过内置 SQLite,但使用相同的 Java 接口。
- Dbstat 虚拟表 → DBSTAT 虚拟表报告 SQLite 数据库中存储内容的表的大小和几何形状,并且是 [sqlite3_analyzer] 实用程序的基础。
- Csv 虚拟表 → CSV 虚拟表允许 SQLite 直接读取和查询 [https://www.ietf.org/rfc/rfc4180.txt|RFC 4180] 格式的文件。
- Carray → CARRAY 是一个[表值函数],它允许在 SQL 查询中使用 C 语言数组。
- generate_series → generate_series() [表值函数] 的描述。
- Spellfix1 → spellfix1 扩展是为 [全文搜索] 进行拼写校正的实验。
- ▼特征
- 8+3 文件名 → 如何让 SQLite 在只支持 8+3 文件名的文件系统上工作。
- Autoincrement → SQLite 中 AUTOINCREMENT 关键字的描述,它的作用,为什么它有时有用,以及如果不是绝对必要的话为什么应该避免。
- 备份 API → [sqlite3_backup_init | 在线备份接口]可用于将内容从磁盘文件复制到内存数据库,反之亦然,它可以对实时数据库进行热备份。本应用笔记给出了相关示例。
- 错误和警告日志 → SQLite 支持“错误和警告日志”设计,以捕获有关运行期间可疑和/或错误事件的信息。鼓励嵌入式应用程序启用错误和警告日志,以帮助调试现场出现的应用程序问题。本文档解释了如何做到这一点。
- 外键支持 → 本文档描述了对 3.6.19 版本中引入的外键约束的支持。
- Indexes On Expressions → 关于如何在表达式而不是单个列上创建索引的说明。
- 内部 Blob 存储与外部 Blob 存储 → 你应该将大型 BLOB 直接存储在数据库中,还是将它们存储在文件中,只在数据库中记录文件名?本文档旨在阐明该问题。
- SQLite 中的限制 → 本文档描述了 SQLite 的限制(字符串或 blob 的最大长度、数据库的最大大小、数据库中表的最大数量等)以及如何在编译时更改这些限制和运行时。
- 内存映射 I/O → SQLite 支持内存映射 I/O。在本文档中了解如何启用内存映射 I/O 以及使用内存映射 I/O 的各种优缺点。
- 多线程程序和 SQLite → SQLite 在多线程程序中使用是安全的。本文档提供了有关如何最大化性能的详细信息和提示。
- Null 处理 → 不同的 SQL 数据库引擎以不同的方式处理 NULL。SQL 标准不明确。这份(大约 2003 年)文档描述了与其他 SQL 数据库引擎相比,SQLite 如何处理 NULL。
- 部分索引 → 部分索引是仅覆盖表中行的子集的索引。从此文档中了解如何在 SQLite 中使用部分索引。
- 共享缓存模式 → 版本 3.3.0 及更高版本支持两个或多个数据库连接共享同一页面和模式缓存的能力。此功能对于某些专门的应用程序很有用。
- Unlock Notify → “unlock notify”功能可与[共享缓存模式]结合使用,更有效地管理资源冲突(数据库表锁)。
- URI 文件名 → 数据库文件的名称可以使用普通文件名或 URI 指定。如本文档所述,使用 URI 文件名提供了额外的功能。
- WITHOUT ROWID Tables → WITHOUT ROWID 优化是一个选项,有时会导致更小和更快的数据库。
- 预写日志 (WAL) 模式 → 使用预写日志的事务控制提供更多并发性,并且通常比默认回滚事务更快。本文档解释了如何使用 WAL 模式来提高性能。
- ▼工具
- 命令行 Shell (sqlite3.exe) → 关于使用“sqlite3.exe”命令行界面的注意事项,可用于创建、修改和查询任意 SQLite 数据库文件。
- SQLite 数据库分析器 (sqlite3_analyzer.exe) → 这个独立程序读取 SQLite 数据库并输出一个文件,显示每个表和索引使用的空间以及其他统计信息。使用 [dbstat 虚拟表] 构建。
- RBU → “Resumable Bulk Update”实用程序允许以可恢复且不中断正在进行的操作的方式将一批更改应用于在嵌入式硬件上运行的远程数据库。
- SQLite 数据库差异 (sqldiff.exe) → 这个独立程序比较两个 SQLite 数据库文件并输出将一个文件转换为另一个文件所需的 SQL。
- 数据库哈希 (dbhash.exe) → 该程序演示了如何计算 SQLite 数据库内容的哈希。
- Fossil → Fossil 版本控制系统是一个分布式 VCS,专门用于支持 SQLite 开发。Fossil 使用 SQLite 进行存储。
- SQLite Archiver (sqlar.exe) → 一个类似 ZIP 的归档程序,使用 SQLite 进行存储。
- ▼倡导
- SQLite 作为应用程序文件格式 → 本文提倡使用 SQLite 作为应用程序文件格式来代替 XML 或 JSON 或“文件堆”。
- 知名用户 → 此页面列出了使用 SQLite 的数千种设备和应用程序中的一小部分。
- 比文件系统快 35% → 本文指出,从 SQLite 数据库中读取 blob 通常比从文件系统中的单个文件中读取相同的 blob 更快。
- ▼技术和设计文档
- 数据库损坏是如何发生 的 → SQLite 对数据库损坏具有很强的抵抗力。但是应用程序、操作系统和硬件错误仍然会导致数据库文件损坏。本文介绍了 SQLite 数据库文件损坏的多种方式。
- SQLite 使用的临时文件 → SQLite 在处理某些 SQL 语句时可能会使用许多不同的临时文件。本文档描述了 SQLite 使用的多种临时文件,并提供了避免在创建临时文件是一项昂贵操作的系统上使用它们的建议。
- 内存数据库 → SQLite 通常将内容存储在磁盘文件中。但是,它也可以用作内存数据库引擎。本文档解释了如何。
- SQLite How Implements Atomic Commit → 对 SQLite 中实现原子提交事务的逻辑的描述,即使在遇到电源故障时也是如此。
- SQLite 中的动态内存分配 → SQLite 有一个复杂的内存分配子系统,可以配置和定制以满足应用程序的内存使用要求,并且在内存不足和无泄漏的情况下具有鲁棒性。本文档提供了详细信息。
- 定制和移植 SQLite → 本文档解释了如何定制 SQLite 的构建以及如何将 SQLite 移植到新平台。
SQLite 版本 3中的锁定和并发 性 → 描述版本 3 中的新锁定代码如何增加并发性并减少 writer starvation 问题。- SQLite 中的隔离 → 当我们说 SQLite 事务是“可序列化的”时,这到底是什么意思?如何以及何时在同一数据库连接和其他数据库连接中使更改可见?
- Overview Of The Optimizer → 快速概述 SQLite 代码生成器尝试的各种查询优化。
- 下一代查询规划器 → 关于 SQLite 查询规划器的附加信息,特别是 3.8.0 版查询规划器的重新设计。
- 架构 → SQLite 库的架构概述,对那些想要破解代码的人很有用。
- VDBE Opcodes → 本文档是自动生成的对 VDBE 理解的各种操作码的描述。程序员可以使用此文档作为参考,以更好地理解 SQLite 中 EXPLAIN 列表的输出。
- 虚拟文件系统 → “VFS”对象是 SQLite 核心和底层操作系统之间的接口。从本文中了解有关 VFS 对象如何工作以及如何创建新 VFS 对象的更多信息。
- 虚拟表 → 本文介绍了 SQLite 中的虚拟表机制和 API,以及如何使用它向核心 SQLite 库添加新功能。
- SQLite 文件格式 → 用于 SQLite 数据库和日志文件的格式的描述,以及创建软件以在不使用 SQLite 的情况下读取和写入 SQLite 数据库所需的其他详细信息。
- 编译选项 → 本文档描述了可以设置为修改库的默认行为或省略可选功能以减小二进制大小的编译时选项。
- SQLite 的 Android 绑定 → 描述如何为 Android 编译您自己的 SQLite(绕过 Android 内置的 SQLite)以及代码和 makefile。
- 调试提示 → 用于跟踪、检查和理解核心 SQLite 库操作的技巧和技术列表。
- ▼升级 SQLite,向后兼容
- Moving From SQLite 3.5 to 3.6 → 描述 SQLite 版本 3.5.9 和 3.6.0 之间差异的文档。
- Moving From SQLite 3.4 to 3.5 → 描述 SQLite 版本 3.4.2 和 3.5.0 之间差异的文档。
- 发布历史 → SQLite 发布的年表可以追溯到版本 1.0.0
- 向后兼容性 → 本文档详细介绍了自版本 1.0.0 以来发生的对 SQLite 文件格式的所有不兼容更改。
- 私有分支 → 本文档建议维护 SQLite 的私有分支或分支并使该分支或分支与公共 SQLite 源代码树同步的过程。
- ▼作废的文件
- 异步 IO 模式 → 此页面描述了与 SQLite 一起开发的异步 IO 扩展。使用异步 IO 可以通过将数据库写入委托给后台线程来使 SQLite 看起来响应更快。 注意:此扩展已弃用。建议使用 [WAL 模式] 作为替代。
- 版本 2 C/C++ API → SQLite 到版本 2.8 的 C/C++ 接口绑定的描述
- 版本 2数据类型 → SQLite 版本 2 如何处理 SQL 数据类型的描述。简短摘要:一切都是字符串。
- VDBE 教程 → VDBE 是 SQLite 中的子系统,它执行执行 SQL 语句的实际工作。本页描述了 SQLite 2.7 版中 VDBE 的操作原理。对于任何想要修改 SQLite 源代码的人来说,这是一本必读的书。
- SQLite 版本 3 → SQLite 版本 2.8 和 SQLite 版本 3.0 之间的变化摘要。
- Version 3 C/C++ API → SQLite 2.8 版和 SQLite 3.0 版之间与 API 相关的更改摘要。
- 速度比较 → SQLite 2.7.6 版本的速度与 PostgreSQL 和 MySQL 进行比较。