本節試圖概述 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 尚未支援的功能清單。這兩個清單都是近似的:對於列為支援的功能,可能存在不符合標準的細微細節,並且可能實際上已實作了不支援功能的很大一部分。說明文件的主體始終包含關於哪些有效和哪些無效的最準確資訊。
包含連字號的功能代碼是子功能。因此,如果不支持特定的子功能,則即使支持某些其他子功能,主要功能也會被列為不支持。
如果您在文件中發現任何不正確、與您使用特定功能的經驗不符,或需要進一步澄清之處,請使用此表單回報文件問題。