Unterstützte Versionen: Aktuell (18) / 17 / 16 / 15 / 14 / 13
Entwicklungsversionen: devel
Nicht unterstützte Versionen: 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

Anhang D. SQL-Konformität

Dieser Abschnitt versucht, darzulegen, inwieweit PostgreSQL dem aktuellen SQL-Standard entspricht. Die folgenden Informationen stellen keine vollständige Konformitätserklärung dar, sondern präsentieren die wichtigsten Themen in dem Umfang, der sowohl vernünftig als auch für Benutzer nützlich ist.

Der formale Name des SQL-Standards ist ISO/IEC 9075 Datenbanksprache SQL. Eine überarbeitete Version des Standards wird von Zeit zu Zeit veröffentlicht; das aktuellste Update erschien 2023. Die Version 2023 wird als ISO/IEC 9075:2023 oder einfach als SQL:2023 bezeichnet. Die vorherigen Versionen waren SQL:2016, SQL:2011, SQL:2008, SQL:2006, SQL:2003, SQL:1999 und SQL-92. Jede Version ersetzt die vorherige, so dass Behauptungen über die Konformität mit früheren Versionen keine offizielle Gültigkeit haben. Die PostgreSQL-Entwicklung zielt auf Konformität mit der neuesten offiziellen Version des Standards, sofern diese Konformität nicht traditionellen Funktionen oder dem gesunden Menschenverstand widerspricht. Viele der vom SQL-Standard geforderten Funktionen werden unterstützt, jedoch manchmal mit leicht abweichender Syntax oder Funktion. Weitere Schritte zur Konformität sind im Laufe der Zeit zu erwarten.

SQL-92definierte drei Funktionssätze für die Konformität: Entry, Intermediate und Full. Die meisten Datenbankmanagementsysteme, dieSQLStandardkonformität beanspruchen, entsprachen nur dem Entry-Level, da der gesamte Satz von Funktionen der Intermediate- und Full-Level entweder zu umfangreich war oder mit Legacy-Verhalten in Konflikt stand.

Beginnend mitSQL:1999definiert der SQL-Standard einen großen Satz einzelner Funktionen anstelle der ineffektiv breiten drei Level, die inSQL-92gefunden wurden. Ein großer Teil dieser Funktionen stellt die Kern-Funktionen dar, die jede konforme SQL-Implementierung bereitstellen muss. Die übrigen Funktionen sind rein optional.

Der Standard ist in eine Reihe von Teilen unterteilt, die jeweils auch durch eine Kurzbezeichnung bekannt sind

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

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

  • ISO/IEC 9075-3 Call Level Interface (SQL/CLI)

  • ISO/IEC 9075-4 Persistent Stored Modules (SQL/PSM)

  • ISO/IEC 9075-9 Management of External Data (SQL/MED)

  • ISO/IEC 9075-10 Object Language Bindings (SQL/OLB)

  • ISO/IEC 9075-11 Information and Definition Schemas (SQL/Schemata)

  • ISO/IEC 9075-13 Routines and Types using the Java Language (SQL/JRT)

  • ISO/IEC 9075-14 XML-related specifications (SQL/XML)

  • ISO/IEC 9075-15 Multi-dimensional arrays (SQL/MDA)

  • ISO/IEC 9075-16 Property Graph Queries (SQL/PGQ)

Beachten Sie, dass einige Teilenummern nicht (oder nicht mehr) verwendet werden.

Der PostgreSQL-Kern umfasst die Teile 1, 2, 9, 11 und 14. Teil 3 wird durch den ODBC-Treiber abgedeckt, und Teil 13 wird durch das PL/Java-Plug-in abgedeckt, aber die genaue Konformität wird für diese Komponenten derzeit nicht überprüft. Derzeit gibt es keine Implementierungen der Teile 4, 10, 15 und 16 für PostgreSQL.

PostgreSQL unterstützt die meisten der wichtigsten Funktionen von SQL:2023. Von 177 obligatorischen Funktionen, die für die vollständige Kernkonformität erforderlich sind, entspricht PostgreSQL mindestens 170. Darüber hinaus gibt es eine lange Liste unterstützter optionaler Funktionen. Es ist erwähnenswert, dass zum Zeitpunkt der Erstellung dieser Dokumentation keine aktuelle Version eines Datenbankmanagementsystems die vollständige Konformität mit Core SQL:2023 beansprucht.

In den folgenden beiden Abschnitten stellen wir eine Liste der Funktionen bereit, die PostgreSQL unterstützt, gefolgt von einer Liste der Funktionen, die inSQL:2023noch nicht in PostgreSQL unterstützt werden. Beide Listen sind ungefähr: Es kann geringfügige Details geben, die für eine als unterstützt gelistete Funktion nicht konform sind, und große Teile einer nicht unterstützten Funktion können tatsächlich implementiert sein. Der Hauptteil der Dokumentation enthält immer die genauesten Informationen darüber, was funktioniert und was nicht.

Hinweis

Funktionscodes, die einen Bindestrich enthalten, sind Unterfunktionen. Wenn eine bestimmte Unterfunktion nicht unterstützt wird, wird die Hauptfunktion als nicht unterstützt aufgeführt, auch wenn einige andere Unterfunktionen unterstützt werden.

Korrektur einreichen

Wenn Sie in der Dokumentation etwas finden, das nicht korrekt ist, nicht mit Ihren Erfahrungen mit der jeweiligen Funktion übereinstimmt oder weitere Klärung erfordert, verwenden Sie bitte dieses Formular, um ein Dokumentationsproblem zu melden.