PostgreSQL 8.2.3 中文文档
后退快退快进前进

附录D. SQL 兼容性

目录
D.1. 支持的特性
D.2. 不支持的特性

本节试图描述 PostgreSQL 在多大程度上遵循 SQL 标准。下面的信息不是兼容性的全部内容,但是它提供了一个从用户角度来看,既合理又有用的足够的细节信息。

SQL 标准的正式名称是 ISO/IEC 9075 "Database Language SQL"。标准的修改版会经常地发布;最近的一个版本是在 2003 年出现的。那个版本被称作 ISO/IEC 9075:2003 ,或者简称为 SQL:2003 。这个版本之前的是 SQL:1999 和 SQL-92 。每个标准都代替了前面那个,所以声称兼容早期版本没有什么官方的好处。PostgreSQL 的开发力图瞄准兼容标准最新的正式版本,只要这样的兼容不会和传统的特性或者常识冲突。在 SQL:2003 的准备过程中,PostgreSQL 项目在 ISO/IEC 9075 工作组里面没有代表。即使如此,许多 SQL:2003 要求的特性都已经得到了支持,只是有些时候函数的语法略有不同。更多有关标准兼容的特性将在未来的版本里看到。

SQL-92 为兼容性定义了三个特性集:基本、中等、完全。大多数声称兼容 SQL 标准的数据库产品都只是兼容基本级别,因为中等和完全的特性要么是太庞大,要么就是和传统的行为相冲突。

从 SQL:1999 开始,SQL 标准定义了一个很大的独立特性集合,而不是 SQL-92 那样宽泛而又低效率的三个级别。这些特性中的一个很大的子集形成"核心"特性,它们是每种兼容 SQL 的实现必须提供的特性。其它的特性都是可选的。有些可选的特性组合在一起形成"包",SQL 的实现可以号称遵循这些包,也就是声称遵循特定的特性组。

SQL:2003 标准也分裂成一系列部分:每种都用一个缩写来标识。请注意这些部分并非连续编号的。

PostgreSQL 涵盖 1, 2, 11 。3 类似 ODBC 接口,4 类似 PL/pgSQL 编程语言,但是两者都没有经过严格的标准兼容检查,也并未完全按照标准实现。

PostgreSQL 支持大多数 SQL:2003 的主要特性。在总共 164 个强制要求完全兼容的核心特性里,PostgreSQL 遵循至少 150 个。另外,PostgreSQL 还支持一长串可选的特性。值得一提的是,在写这些的时候,没有任何当前版本的数据库管理系统声称支持全部核心 SQL:2003 。

下面的两节列出了 PostgreSQL 支持的特性,以及 PostgreSQL 目前尚不支持的 SQL:2003 特性。这两个列表都是近似的:被列为支持的特性可能在某些次要细节方面与标准不一致,被列为不支持的特性也可能实际上已经被实现。文档的主题部分包含了大多数能否正常工作的精确信息。

【注意】包含一个连字符的特性代码表示一个子特性。因此,如果不支持特定的子特性,那么主特性也会列在不支持的特性,即使支持其它的子特性也如此。


后退首页前进
SQL 关键字上一级支持的特性