SQL-Dialekte
SQL-Dialekt ist ein Begriff, der die spezifischen Funktionen der SQL-Sprache definiert, die beim Zugriff auf eine Datenbank verfügbar sind.SQL-Dialekte können auf Datenbankebene definiert und auf Verbindungsebene angegeben werden.Drei Dialekte stehen zur Verfügung:
-
Dialekt 1 dient ausschließlich dazu, die Abwärtskompatibilität mit Legacy-Datenbanken aus sehr alten InterBase-Versionen, v.5 und darunter, zu ermöglichen.Dialekt 1-Datenbanken behalten bestimmte Sprachfunktionen bei, die sich von Dialekt 3 unterscheiden, dem Standard für Firebird-Datenbanken.
-
Datums- und Uhrzeitinformationen werden im Datentyp
DATE
gespeichert.Ein DatentypTIMESTAMP
ist ebenfalls verfügbar, der mit dieserDATE
-Implementierung identisch ist. -
Anführungszeichen können als Alternative zu Apostrophen zum Trennen von Zeichenfolgendaten verwendet werden.Dies steht im Gegensatz zum SQL-Standard – doppelte Anführungszeichen sind sowohl in Standard-SQL als auch in Dialekt 3 für einen bestimmten syntaktischen Zweck reserviert.Strings in doppelten Anführungszeichen sind daher streng zu vermeiden.
-
Die Genauigkeit für die Datentypen
NUMERIC
undDECIMAL
ist kleiner als in Dialekt 3 und wenn die Genauigkeit einer festen Dezimalzahl größer als 9 ist, speichert Firebird sie intern als langen Gleitkommawert. -
Der Datentyp
BIGINT
(64-Bit-Ganzzahl) wird nicht unterstützt. -
Bei Bezeichnern wird die Groß-/Kleinschreibung nicht beachtet und müssen immer den Regeln für normale Bezeichner entsprechen — siehe Abschnitt [fblangref40-structure-identifiers-de] weiter unten.
-
Obwohl Generatorwerte als 64-Bit-Ganzzahlen gespeichert werden, gibt eine Dialekt-1-Client-Anfrage, beispielsweise
SELECT GEN_ID (MyGen, 1)
den Generatorwert auf 32 Bit gekürzt zurück.
-
-
Dialekt 2 ist nur über die Firebird-Client-Verbindung verfügbar und kann nicht in der Datenbank eingestellt werden.Es soll das Debuggen möglicher Probleme mit Altdaten bei der Migration einer Datenbank von Dialekt 1 auf 3 unterstützen.
-
In Dialekt 3-Datenbanken,
-
Zahlen (Datentypen
DECIMAL
undNUMERIC
) werden intern als lange Festkommawerte (skalierte Ganzzahlen) gespeichert, wenn die Genauigkeit größer als 9 ist. -
Der Datentyp
TIME
ist nur zum Speichern von Uhrzeitdaten verfügbar. -
Der Datentyp
DATE
speichert nur Datumsinformationen. -
Der 64-Bit-Integer-Datentyp
BIGINT
ist verfügbar. -
Doppelte Anführungszeichen sind für die Abgrenzung nicht regulärer Bezeichner reserviert, um Objektnamen zu ermöglichen, bei denen die Groß-/Kleinschreibung beachtet wird oder die auf andere Weise nicht die Anforderungen für reguläre Bezeichner erfüllen.
-
Alle Strings müssen durch einfache Anführungszeichen (Apostrophe) getrennt werden.
-
Generatorwerte werden als 64-Bit-Ganzzahlen gespeichert.
-
Important
|
Für neu entwickelte Datenbanken und Anwendungen wird die Verwendung von Dialect 3 dringend empfohlen.Sowohl Datenbank- als auch Verbindungsdialekte sollten übereinstimmen, außer unter Migrationsbedingungen mit Dialekt 2. Diese Referenz beschreibt die Semantik von SQL Dialect 3, sofern nicht anders angegeben. |