返回介绍

I. 教程

II. SQL 语言

III. 服务器管理

IV. 客户端接口

V. 服务器端编程

VI. 参考手册

VII. 内部

VIII. 附录

附录D. SQL 兼容性

发布于 2019-09-30 03:13:58 字数 1847 浏览 899 评论 0 收藏 0

目录
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 标准也分裂成一系列部分:每种都用一个缩写来标识。请注意这些部分并非连续编号的。

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

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

  • ISO/IEC 9075-3 调用层接口 (SQL/CLI)

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

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

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

  • ISO/IEC 9075-11 信息及定义模式 (SQL/Schemata)

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

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

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

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

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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文