2025年9月25日: PostgreSQL 18 釋出!
支援的版本:當前 (18) / 17 / 16 / 15 / 14 / 13
開發版本:開發版
不支援的版本:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3

附錄 D. SQL 相容性

本節旨在概述 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 實現都必須提供的。其餘功能純屬可選。

該標準被分成多個部分,每個部分也透過簡寫名稱為人所知

  • 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)

  • ISO/IEC 9075-15 多維陣列 (SQL/MDA)

  • ISO/IEC 9075-16 屬性圖查詢 (SQL/PGQ)

請注意,某些部分編號未使用(或已不再使用)。

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 中尚不支援的功能列表。這兩個列表都是近似的:某個被列為支援的功能可能存在不相容的細節,而一個不支援的功能可能在很大程度上已經被實現。文件的正文始終包含關於什麼可行和什麼不可行的最準確資訊。

注意

包含連字元的功能程式碼是子功能。因此,如果某個特定的子功能不受支援,即使該主功能的其他某些子功能得到支援,該主功能仍被列為不受支援。

提交更正

如果您在文件中發現任何不正確、與您對特定功能的體驗不符或需要進一步澄清的內容,請使用此表格報告文件問題。