9.3 9.4 9.5 9.6 10 11 12 13 14 15 Current(16) 17
问题报告 纠错本页面

Appendix D. SQL 符合性

Table of Contents

D.1. 已支持特性
D.2. 未支持特性
D.3. XML对于SQL的限制和符合性/XML
D.3.1. 查询只限于XPath 1.0
D.3.2. 实现中的附带限制

这一节尝试勾勒出PostgreSQL与当前 SQL 标准相符合的范围。下面的信息并不是符合性的完整说明,但是它尽可能详细地表达了对用户合理且有用的主要主题。

SQL标准的正式名称是ISO/IEC 9075 数据库语言SQL。 标准的修订版本会不时发布;最近的一次更新出现在2023年。 2023版本被称为ISO/IEC 9075:2023,或简称为SQL:2023。 在此之前的版本包括SQL:2016、SQL:2011、SQL:2008、SQL:2006、SQL:2003、 SQL:1999和SQL-92。每个版本都会取代前一个版本,因此声称符合早期版本 的说法没有官方意义。 PostgreSQL的开发目标是与最新的官方标准版本 保持一致,但前提是这种一致性不会与传统功能或常识相矛盾。 SQL标准要求的许多功能都得到了支持,尽管有时语法或功能略有不同。 随着时间的推移,可以期待进一步向标准一致性迈进。

SQL-92为符合性定义了三个特性集:入口、中间和完整。大部分号称SQL标准符合的数据库管理系统只是在入口级别上的符合,因为中间和完整级别的整个特性集合要么太多要么与遗留行为冲突。

SQL:1999开始,SQL 标准定义了一个大型的个体特性集合,而没有无用地拓宽SQL-92中的三个级别。 这些特性中的一个大型子集代表核心特性,每一个符合 SQL 的实现都必须提供。剩下的特性纯粹是可选的。

标准分为多个部分,每个部分也有一个简称:

请注意,某些部分编号未使用(或不再使用)。

PostgreSQL核心涵盖了第1、2、9、11和14部分。第3部分由 ODBC驱动程序涵盖,第13部分由PL/Java插件涵盖,但目前尚未对这些组件进行精确 的符合性验证。目前还没有针对PostgreSQL的第4、 10、15和16部分的实现。

PostgreSQL 支持 SQL:2023 的大多数主要功能。在实现完全核心兼容性 所需的 177 项强制功能中,PostgreSQL 至少符合 170 项。此外,还有 一长串支持的可选功能。值得注意的是,在撰写本文时,没有任何版本的 数据库管理系统声称完全符合核心 SQL:2023。

在接下来的两个部分中,我们提供了PostgreSQL 支持的功能列表,接着是SQL:2023中定义但尚未被 PostgreSQL支持的功能列表。 这两个列表都是近似的:对于标记为支持的功能,可能存在一些不符合规范的 细节,而对于不支持的功能,大部分内容实际上可能已经实现。 文档的主体部分始终包含关于哪些功能可用或不可用的最准确信息。

Note

包含一个连字符的特性编码是子特性。因此,如果一个特定的子特性没有被支持,其主特性被列为未支持,即使其他的子特性都已被支持。