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