附录 D. SQL 一致性

目录

本节试图概述 PostgreSQL 在何种程度上符合当前的 SQL 标准。以下信息不是完整的符合性声明,但是它以合理且对用户有用的方式详细介绍了主要主题。

SQL 标准的正式名称是 ISO/IEC 9075“数据库语言 SQL”。该标准的修订版会不时发布;最新版本出现在 2011 年。2011 版称为 ISO/IEC 9075:2011,或简称为 SQL:2011.之前的版本是 SQL:2008,SQL:2006,SQL:2003,SQL:1999 和 SQL-92.每个版本都替代了以前的版本,因此声称与早期版本保持一致没有正式的优点。 PostgreSQL 开发的目的是与标准的最新正式版本保持一致,在这种情况下,这种一致不与传统功能或常识相矛盾。支持 SQL 标准所需的许多功能,尽管有时语法或功能略有不同。随着时间的流逝,有望进一步实现一致性。

SQL-92 为一致性定义了三个功能集:Importing,中间和完整。大多数声称符合 SQL 标准的数据库 Management 系统仅在入门级别上符合要求,因为中级和完全级别的整个功能集要么过于繁琐,要么与传统行为冲突。

从 SQL:1999 开始,SQL 标准定义了大量单独的功能,而不是 SQL-92 中无效的广泛三个级别。这些功能的很大一部分表示“核心”功能,每个符合 SQL 的实现都必须提供这些功能。其余功能完全是可选的。一些可选功能被组合在一起以形成“包”,SQL 实现可以声明其符合性,因此要求符合特定的功能组。

以 SQL:2003 开头的标准版本也分为许 Multipart。每一个都以简写名称而闻名。请注意,这些部分没有连续编号。

  • ISO/IEC 9075-1 框架(SQL /框架)

  • ISO/IEC 9075-2 基础(SQL/Foundation)

  • ISO/IEC 9075-3 呼叫层介面(SQL/CLI)

  • ISO/IEC 9075-4 永久存储的模块(SQL/PSM)

  • ISO/IEC 9075-9 外部数据 Management(SQL/MED)

  • ISO/IEC 9075-10 对象语言绑定(SQL/OLB)

  • ISO/IEC 9075-11 信息和定义架构(SQL/Schemata)

  • 使用 Java 语言(SQL/JRT)的 ISO/IEC 9075-13 例程和类型

  • ISO/IEC 9075-14 XML 相关规范(SQL/XML)

PostgreSQL 核心涵盖第 1、2、9、11 和 14 部分。ODBC 驱动程序涵盖第 3 部分,PL/Java 插件涵盖第 13 部分,但是目前尚未验证这些组件的确切一致性。 。当前没有 PostgreSQL 的第 4 部分和第 10 部分的实现。

PostgreSQL 支持 SQL:2011 的大多数主要功能。完全符合 Core 要求的 179 个必需功能中,PostgreSQL 至少符合 160 个。此外,受支持的可选功能列表也很长。可能需要指出的是,在撰写本文时,任何数据库 Management 系统的当前版本都没有声称完全符合 Core SQL:2011.

在以下两节中,我们提供了 PostgreSQL 支持的那些功能的列表,然后列出了 SQL:2011 中定义的 PostgreSQL 尚不支持的功能。这两个列表都是近似的:对于列出为受支持的功能,可能会有一些次要细节不符合要求,实际上可能会实现不支持功能的大部分。文档的主体始终包含有关哪些有效和哪些无效的最准确信息。

Note

包含连字符的功能代码是子功能。因此,如果不支持特定的子功能,则即使支持某些其他子功能,该主要功能也会被列为不支持。