of 306 /306
Firebird Referenz Dokumentation Copyright © 2007, 2008, 2009, 2010, 2011 : Alle Beiträge unterliegen dem Urheberrecht ihrer jeweiligen Auto- ren, sofern nicht anders angegeben. Übersicht Dies ist das Inhaltsverzeichnis der deutschen Firebird Referenz. Für den vollständigen Firebird Dokumentati- onsindex, besuchen Sie bitte: http://www.firebirdsql.org/en/documentation/ Die Homepage des Firebird Dokumentations-Unterprojektes finden Sie hier http://www.firebirdsql.org/en/development-documentation/

Firebird Referenz Dokumentation · iv Inhaltsverzeichnis 1. Über die Firebird SQL Sprachreferenz ..... 1

Embed Size (px)

Text of Firebird Referenz Dokumentation · iv Inhaltsverzeichnis 1. Über die Firebird SQL Sprachreferenz...

Firebird Referenz DokumentationCopyright 2007, 2008, 2009, 2010, 2011 : Alle Beitrge unterliegen dem Urheberrecht ihrer jeweiligen Auto-ren, sofern nicht anders angegeben.

bersicht

Dies ist das Inhaltsverzeichnis der deutschen Firebird Referenz. Fr den vollstndigen Firebird Dokumentati-onsindex, besuchen Sie bitte:

http://www.firebirdsql.org/en/documentation/

Die Homepage des Firebird Dokumentations-Unterprojektes finden Sie hier

http://www.firebirdsql.org/en/development-documentation/

http://www.firebirdsql.org/en/documentation/http://www.firebirdsql.org/en/development-documentation/

2

InhaltsverzeichnisFirebird 2.5 Sprachreferenz .................................................................................................................... 1

1. ber die Firebird SQL Sprachreferenz ........................................................................................ 1Thema ................................................................................................................................... 1Urheberschaft ......................................................................................................................... 1

Aktualisierungen der Sprachreferenz ............................................................................... 1Die Geburt des Bigbooks ............................................................................................... 2Mitwirkende ................................................................................................................... 2

Anmerkungen ........................................................................................................................ 32. SQL Sprachstruktur .................................................................................................................... 5

Hintergrund zu Firebirds SQL-Sprache .................................................................................... 5SQL Bestandteile ........................................................................................................... 5SQL-Dialekte ................................................................................................................. 6Fehlerbedingungen ......................................................................................................... 7

Grundelemente: Statements, Klauseln, Schlsselwrter ............................................................. 7Bezeichner ............................................................................................................................. 8Literale .................................................................................................................................. 9Operatoren und Sonderzeichen ................................................................................................ 9Kommentare ........................................................................................................................ 10

3. Datentypen und Unterdatentypen ............................................................................................... 12Integer-Datentypen .................................................................................................................. 14

SMALLINT ................................................................................................................... 14INTEGER ..................................................................................................................... 14BIGINT ........................................................................................................................ 15

Fliekomma-Datentypen ........................................................................................................... 15FLOAT ......................................................................................................................... 16DOUBLE PRECISION .................................................................................................... 16

Festkomma-Datentypen ............................................................................................................ 16NUMERIC .................................................................................................................... 17DECIMAL ..................................................................................................................... 17

Datentypen fr Datum und Zeit ............................................................................................ 18DATE ........................................................................................................................... 19TIME ........................................................................................................................... 19TIMESTAMP ................................................................................................................. 19Operationen, die Datums- und Zeitwerte verwenden ....................................................... 19

Zeichendatentypen ................................................................................................................ 21Unicode ....................................................................................................................... 21Client-Zeichensatz ........................................................................................................ 21Spezielle Zeichenstze .................................................................................................. 21COLLATION ............................................................................................................... 22Zeichenindizes ............................................................................................................. 23Zeichendatentypen im Detail ......................................................................................... 24

Binrdatentypen ................................................................................................................... 25BLOB Untertypen ........................................................................................................ 26BLOB Specifics ............................................................................................................ 26ARRAY Type ............................................................................................................... 27

Spezialdatentypen ................................................................................................................. 28SQL_NULL-Datentyp .................................................................................................... 28

Datentyp-Konvertierungen .................................................................................................... 30Explizite Datentyp-Konvertierung ................................................................................. 30Implizite Datentyp-Konvertierung ................................................................................. 34

Firebird RefDocs

3

Benutzerdefinierte DatentypenDomains .............................................................................. 35Domain-Eigenschaften .................................................................................................. 35Domain-berschreibung ............................................................................................... 36Domains erstellen und verwalten ................................................................................... 36

4. Allgemeine Sprachelemente ...................................................................................................... 39Ausdrcke ............................................................................................................................ 39

Konstanten ................................................................................................................... 40SQL-Operatoren ........................................................................................................... 43Bedingte Ausdrcke ..................................................................................................... 46NULL in Ausdrcken .................................................................................................... 48Unterabfragen .............................................................................................................. 49

Prdikate .............................................................................................................................. 51Behauptungen .............................................................................................................. 51Vergleichs-Prdikate ..................................................................................................... 51Existenzprdikate ......................................................................................................... 62Quantifizierte Unterabfrage-Prdikate ................................................................................. 66

5. Statements der Data Definition (DDL) ...................................................................................... 68DATABASE .......................................................................................................................... 68

CREATE DATABASE .................................................................................................... 68ALTER DATABASE ...................................................................................................... 72DROP DATABASE ........................................................................................................ 75

SHADOW ............................................................................................................................ 76CREATE SHADOW ....................................................................................................... 76DROP SHADOW ........................................................................................................... 78

DOMAIN .............................................................................................................................. 78CREATE DOMAIN ........................................................................................................ 79ALTER DOMAIN .......................................................................................................... 83DROP DOMAIN ............................................................................................................ 87

TABLE ................................................................................................................................. 87CREATE TABLE ........................................................................................................... 88ALTER TABLE ........................................................................................................... 101DROP TABLE ............................................................................................................. 108RECREATE TABLE ..................................................................................................... 109

INDEX ............................................................................................................................... 110CREATE INDEX .......................................................................................................... 110ALTER INDEX ............................................................................................................ 113DROP INDEX .............................................................................................................. 115SET STATISTICS ......................................................................................................... 116

VIEW ................................................................................................................................. 117CREATE VIEW ........................................................................................................... 117ALTER VIEW ............................................................................................................. 120CREATE OR ALTER VIEW .......................................................................................... 122DROP VIEW ............................................................................................................... 123RECREATE VIEW ....................................................................................................... 123

TRIGGER ........................................................................................................................... 124CREATE TRIGGER ...................................................................................................... 124ALTER TRIGGER ........................................................................................................ 130CREATE OR ALTER TRIGGER .................................................................................... 133DROP TRIGGER .......................................................................................................... 134RECREATE TRIGGER ................................................................................................. 134

PROCEDURE ...................................................................................................................... 135CREATE PROCEDURE ................................................................................................ 135

Firebird RefDocs

4

ALTER PROCEDURE ................................................................................................... 140CREATE OR ALTER PROCEDURE ............................................................................... 143DROP PROCEDURE .................................................................................................... 144RECREATE PROCEDURE ............................................................................................ 144

EXTERNAL FUNCTION ....................................................................................................... 145DECLARE EXTERNAL FUNCTION ............................................................................... 146ALTER EXTERNAL FUNCTION ................................................................................... 148DROP EXTERNAL FUNCTION ..................................................................................... 149

FILTER ............................................................................................................................... 150DECLARE FILTER ...................................................................................................... 150DROP FILTER ............................................................................................................. 152

SEQUENCE (GENERATOR) ................................................................................................. 153CREATE SEQUENCE ................................................................................................... 153ALTER SEQUENCE ..................................................................................................... 154SET GENERATOR ....................................................................................................... 155DROP SEQUENCE ....................................................................................................... 156

EXCEPTION ....................................................................................................................... 157CREATE EXCEPTION .................................................................................................. 157ALTER EXCEPTION .................................................................................................... 158CREATE OR ALTER EXCEPTION ................................................................................ 159DROP EXCEPTION ...................................................................................................... 159RECREATE EXCEPTION ............................................................................................. 160

COLLATION ....................................................................................................................... 161CREATE COLLATION ................................................................................................. 161DROP COLLATION ..................................................................................................... 164

CHARACTER SET ............................................................................................................... 165ALTER CHARACTER SET ........................................................................................... 165

ROLE ................................................................................................................................. 166CREATE ROLE ........................................................................................................... 166ALTER ROLE ............................................................................................................. 167DROP ROLE ............................................................................................................... 167

COMMENTS ....................................................................................................................... 168COMMENT ON ........................................................................................................... 168

6. Sicherheit ............................................................................................................................... 171Benutzerauthentifizierung .................................................................................................... 171

Besonders privilegierte Benutzer ................................................................................. 171RDB$ADMIN-Rolle ..................................................................................................... 173Administratoren .......................................................................................................... 176SQL-Anweisungen fr die Benutzerverwaltung ............................................................ 177

SQL-Berechtigungen ........................................................................................................... 181Der Objektinhaber ...................................................................................................... 182Statements zur Erteilung von Privilegien ..................................................................... 182Anweisungen zum widerrufen von Privilegien .............................................................. 188

Anhang A: Zusatzinformationen .................................................................................................. 193Das Feld RDB$VALID_BLR ................................................................................................. 193

Funktionsweise der Invalidierung ................................................................................ 193Ein Hinweis zur Gleichheit ................................................................................................. 195

Anhang B: Fehlercodes und Meldungen ...................................................................................... 196SQLSTATE Fehlercodes und Beschreibungen ...................................................................... 196SQLCODE und GDSCODE Fehlercodes und Beschreibungen .............................................. 204

Anhang C: Reservierte Wrter und Schlsselwrter ..................................................................... 239Reservierte Wrter .............................................................................................................. 239

Firebird RefDocs

5

Schlsselwrter .................................................................................................................. 240Anhang D: Systemtabellen .......................................................................................................... 244

RDB$BACKUP_HISTORY ................................................................................................ 245RDB$CHARACTER_SETS ................................................................................................ 246RDB$CHECK_CONSTRAINTS ......................................................................................... 246RDB$COLLATIONS .......................................................................................................... 247RDB$DATABASE ............................................................................................................. 248RDB$DEPENDENCIES ..................................................................................................... 248RDB$EXCEPTIONS .......................................................................................................... 249RDB$FIELDS .................................................................................................................... 250RDB$FIELD_DIMENSIONS .............................................................................................. 253RDB$FILES ....................................................................................................................... 253RDB$FILTERS .................................................................................................................. 254RDB$FORMATS ............................................................................................................... 255RDB$FUNCTIONS ............................................................................................................ 255RDB$FUNCTION_ARGUMENTS ..................................................................................... 256RDB$GENERATORS ........................................................................................................ 258RDB$INDICES .................................................................................................................. 258RDB$INDEX_SEGMENTS ................................................................................................ 259RDB$LOG_FILES ............................................................................................................. 260RDB$PAGES ..................................................................................................................... 260RDB$PROCEDURES ......................................................................................................... 261RDB$PROCEDURE_PARAMETERS ................................................................................. 262RDB$REF_CONSTRAINTS ............................................................................................... 263RDB$RELATIONS ............................................................................................................ 264RDB$RELATION_CONSTRAINTS ................................................................................... 265RDB$RELATION_FIELDS ................................................................................................ 266RDB$ROLES ..................................................................................................................... 267RDB$SECURITY_CLASSES ............................................................................................. 268RDB$TRANSACTIONS ..................................................................................................... 268RDB$TRIGGERS ............................................................................................................... 269RDB$TRIGGER_MESSAGES ............................................................................................ 270RDB$TYPES ..................................................................................................................... 271RDB$USER_PRIVILEGES ................................................................................................ 271RDB$VIEW_RELATIONS ................................................................................................. 272

Anhang E: Monitoring Tables ..................................................................................................... 274MON$ATTACHMENTS .................................................................................................... 275

Verwendung von MON$ATTACHMENTS um eine Verbindung zu beenden .................. 276MON$CALL_STACK ........................................................................................................ 276MON$CONTEXT_VARIABLES ........................................................................................ 277MON$DATABASE ............................................................................................................ 278MON$IO_STATS ............................................................................................................... 279MON$MEMORY_USAGE ................................................................................................. 280MON$RECORD_STATS .................................................................................................... 281MON$STATEMENTS ........................................................................................................ 282

MON$STATEMENTS zum Stoppen einer Abfrage nutzen ............................................... 282MON$TRANSACTIONS .................................................................................................... 283

Anhang F: Zeichenstze und Collations ....................................................................................... 285Anhang G: Lizenzhinweise ......................................................................................................... 291Anhang H: Dokumenthistorie ...................................................................................................... 292

Firebird 2.5 SprachreferenzBeta Release 1

Dmitry FilippovAlexander Karpeykin

Alexey KovyazinDmitry Kuzmenko

Denis SimonovPaul VinkenoogThomas WoinkeDmitry Yemanov

11. August 2016, Dokumentversion 0.906

Firebird 2.5 SprachreferenzBeta Release 1

11. August 2016, Dokumentversion 0.906von Dmitry Filippov, Alexander Karpeykin, Alexey Kovyazin, Dmitry Kuzmenko, Denis Simonov, Paul Vinkenoog, Tho-mas Woinke und Dmitry YemanovDie Quelle des meist kopierten Referenzmaterials: Paul VinkenoogWeitere Quelle kopierten Referenzmaterials: Thomas Woinkebersetzung ins Deutsche: Martin Kditz, Mark HarrisCopyright 2016 Das Firebird Projekt und alle beteiligten Autoren, unter der Public Documentation License Version 1.0.Bitte vergleichen Sie auch License Notice in the Appendix.

Zusammenfassung

Dieser Band ist eine Zusammenstellung von Themen rund um die Firebird SQL-Sprache, geschrieben von Mitgliedernder russischsprachigen Firebird Benutzer- und Entwickler-Gemeinschaft. Im Jahr 2014 erreichte diese Zusammenstellungihren Hhepunkt in einem russischsprachigen Referenzhandbuch. Auf Veranlassung von Alexey Kovyazin wurde eineKampagne unter den weltweit verteilten Firebird-Benutzern gestartet, um Mittel fr eine professionelle bersetzung insEnglische freizumachen. Hieraus sollen wiederum bersetzungen in andere Sprachen unter der Schirmherrschaft des Fire-bird Dokumentations-Projektes erstellt werden.

http://www.firebirdsql.org/manual/pdl.html

iv

Inhaltsverzeichnis1. ber die Firebird SQL Sprachreferenz ................................................................................................ 1

Thema ........................................................................................................................................... 1Urheberschaft ................................................................................................................................. 1

Aktualisierungen der Sprachreferenz ....................................................................................... 1Die Geburt des Bigbooks ....................................................................................................... 2Mitwirkende ........................................................................................................................... 2

Anmerkungen ................................................................................................................................ 32. SQL Sprachstruktur ............................................................................................................................ 5

Hintergrund zu Firebirds SQL-Sprache ............................................................................................ 5SQL Bestandteile ................................................................................................................... 5SQL-Dialekte ......................................................................................................................... 6Fehlerbedingungen ................................................................................................................. 7

Grundelemente: Statements, Klauseln, Schlsselwrter .................................................................... 7Bezeichner ..................................................................................................................................... 8Literale .......................................................................................................................................... 9Operatoren und Sonderzeichen ........................................................................................................ 9Kommentare ................................................................................................................................ 10

3. Datentypen und Unterdatentypen ....................................................................................................... 12Integer-Datentypen .......................................................................................................................... 14

SMALLINT ........................................................................................................................... 14INTEGER ............................................................................................................................. 14BIGINT ................................................................................................................................ 15

Fliekomma-Datentypen ................................................................................................................... 15FLOAT ................................................................................................................................. 16DOUBLE PRECISION ............................................................................................................ 16

Festkomma-Datentypen .................................................................................................................... 16NUMERIC ............................................................................................................................ 17DECIMAL ............................................................................................................................. 17

Datentypen fr Datum und Zeit .................................................................................................... 18DATE ................................................................................................................................... 19TIME ................................................................................................................................... 19TIMESTAMP ......................................................................................................................... 19Operationen, die Datums- und Zeitwerte verwenden ............................................................... 19

Zeichendatentypen ........................................................................................................................ 21Unicode ............................................................................................................................... 21Client-Zeichensatz ................................................................................................................ 21Spezielle Zeichenstze .......................................................................................................... 21COLLATION ....................................................................................................................... 22Zeichenindizes ..................................................................................................................... 23Zeichendatentypen im Detail ................................................................................................. 24

Binrdatentypen ........................................................................................................................... 25BLOB Untertypen ................................................................................................................ 26BLOB Specifics .................................................................................................................... 26ARRAY Type ....................................................................................................................... 27

Spezialdatentypen ......................................................................................................................... 28SQL_NULL-Datentyp ............................................................................................................ 28

Datentyp-Konvertierungen ............................................................................................................ 30Explizite Datentyp-Konvertierung ......................................................................................... 30

Firebird 2.5 Sprachreferenz

v

Implizite Datentyp-Konvertierung ......................................................................................... 34Benutzerdefinierte DatentypenDomains ...................................................................................... 35

Domain-Eigenschaften .......................................................................................................... 35Domain-berschreibung ....................................................................................................... 36Domains erstellen und verwalten ........................................................................................... 36

4. Allgemeine Sprachelemente .............................................................................................................. 39Ausdrcke .................................................................................................................................... 39

Konstanten ........................................................................................................................... 40SQL-Operatoren ................................................................................................................... 43Bedingte Ausdrcke ............................................................................................................. 46NULL in Ausdrcken ............................................................................................................ 48Unterabfragen ...................................................................................................................... 49

Prdikate ...................................................................................................................................... 51Behauptungen ...................................................................................................................... 51Vergleichs-Prdikate ............................................................................................................. 51Existenzprdikate ................................................................................................................. 62Quantifizierte Unterabfrage-Prdikate ......................................................................................... 66

5. Statements der Data Definition (DDL) .............................................................................................. 68DATABASE .................................................................................................................................. 68

CREATE DATABASE ............................................................................................................ 68ALTER DATABASE .............................................................................................................. 72DROP DATABASE ................................................................................................................ 75

SHADOW .................................................................................................................................... 76CREATE SHADOW ............................................................................................................... 76DROP SHADOW ................................................................................................................... 78

DOMAIN ...................................................................................................................................... 78CREATE DOMAIN ................................................................................................................ 79ALTER DOMAIN .................................................................................................................. 83DROP DOMAIN .................................................................................................................... 87

TABLE ......................................................................................................................................... 87CREATE TABLE ................................................................................................................... 88ALTER TABLE ................................................................................................................... 101DROP TABLE ..................................................................................................................... 108RECREATE TABLE ............................................................................................................. 109

INDEX ....................................................................................................................................... 110CREATE INDEX .................................................................................................................. 110ALTER INDEX .................................................................................................................... 113DROP INDEX ...................................................................................................................... 115SET STATISTICS ................................................................................................................ 116

VIEW ......................................................................................................................................... 117CREATE VIEW ................................................................................................................... 117ALTER VIEW ..................................................................................................................... 120CREATE OR ALTER VIEW .................................................................................................. 122DROP VIEW ....................................................................................................................... 123RECREATE VIEW ............................................................................................................... 123

TRIGGER ................................................................................................................................... 124CREATE TRIGGER .............................................................................................................. 124ALTER TRIGGER ................................................................................................................ 130CREATE OR ALTER TRIGGER ............................................................................................ 133DROP TRIGGER .................................................................................................................. 134RECREATE TRIGGER ......................................................................................................... 134

PROCEDURE .............................................................................................................................. 135

Firebird 2.5 Sprachreferenz

vi

CREATE PROCEDURE ........................................................................................................ 135ALTER PROCEDURE ........................................................................................................... 140CREATE OR ALTER PROCEDURE ....................................................................................... 143DROP PROCEDURE ............................................................................................................ 144RECREATE PROCEDURE .................................................................................................... 144

EXTERNAL FUNCTION ............................................................................................................... 145DECLARE EXTERNAL FUNCTION ....................................................................................... 146ALTER EXTERNAL FUNCTION ........................................................................................... 148DROP EXTERNAL FUNCTION ............................................................................................. 149

FILTER ....................................................................................................................................... 150DECLARE FILTER .............................................................................................................. 150DROP FILTER ..................................................................................................................... 152

SEQUENCE (GENERATOR) ......................................................................................................... 153CREATE SEQUENCE ........................................................................................................... 153ALTER SEQUENCE ............................................................................................................. 154SET GENERATOR ............................................................................................................... 155DROP SEQUENCE ............................................................................................................... 156

EXCEPTION ............................................................................................................................... 157CREATE EXCEPTION .......................................................................................................... 157ALTER EXCEPTION ............................................................................................................ 158CREATE OR ALTER EXCEPTION ........................................................................................ 159DROP EXCEPTION .............................................................................................................. 159RECREATE EXCEPTION ..................................................................................................... 160

COLLATION ............................................................................................................................... 161CREATE COLLATION ......................................................................................................... 161DROP COLLATION ............................................................................................................. 164

CHARACTER SET ....................................................................................................................... 165ALTER CHARACTER SET ................................................................................................... 165

ROLE ......................................................................................................................................... 166CREATE ROLE ................................................................................................................... 166ALTER ROLE ..................................................................................................................... 167DROP ROLE ....................................................................................................................... 167

COMMENTS ............................................................................................................................... 168COMMENT ON ................................................................................................................... 168

6. Sicherheit ....................................................................................................................................... 171Benutzerauthentifizierung ............................................................................................................ 171

Besonders privilegierte Benutzer ......................................................................................... 171RDB$ADMIN-Rolle ............................................................................................................. 173Administratoren .................................................................................................................. 176SQL-Anweisungen fr die Benutzerverwaltung .................................................................... 177

SQL-Berechtigungen ................................................................................................................... 181Der Objektinhaber .............................................................................................................. 182Statements zur Erteilung von Privilegien ............................................................................. 182Anweisungen zum widerrufen von Privilegien ..................................................................... 188

Anhang A: Zusatzinformationen .......................................................................................................... 193Das Feld RDB$VALID_BLR ........................................................................................................ 193

Funktionsweise der Invalidierung ........................................................................................ 193Ein Hinweis zur Gleichheit ......................................................................................................... 195

Anhang B: Fehlercodes und Meldungen .............................................................................................. 196SQLSTATE Fehlercodes und Beschreibungen ............................................................................. 196SQLCODE und GDSCODE Fehlercodes und Beschreibungen ...................................................... 204

Anhang C: Reservierte Wrter und Schlsselwrter ............................................................................. 239

Firebird 2.5 Sprachreferenz

vii

Reservierte Wrter ..................................................................................................................... 239Schlsselwrter .......................................................................................................................... 240

Anhang D: Systemtabellen .................................................................................................................. 244RDB$BACKUP_HISTORY ........................................................................................................ 245RDB$CHARACTER_SETS ........................................................................................................ 246RDB$CHECK_CONSTRAINTS ................................................................................................. 246RDB$COLLATIONS ................................................................................................................. 247RDB$DATABASE ..................................................................................................................... 248RDB$DEPENDENCIES ............................................................................................................. 248RDB$EXCEPTIONS .................................................................................................................. 249RDB$FIELDS ............................................................................................................................ 250RDB$FIELD_DIMENSIONS ...................................................................................................... 253RDB$FILES ............................................................................................................................... 253RDB$FILTERS .......................................................................................................................... 254RDB$FORMATS ....................................................................................................................... 255RDB$FUNCTIONS .................................................................................................................... 255RDB$FUNCTION_ARGUMENTS ............................................................................................. 256RDB$GENERATORS ................................................................................................................ 258RDB$INDICES .......................................................................................................................... 258RDB$INDEX_SEGMENTS ........................................................................................................ 259RDB$LOG_FILES ..................................................................................................................... 260RDB$PAGES ............................................................................................................................. 260RDB$PROCEDURES ................................................................................................................. 261RDB$PROCEDURE_PARAMETERS ......................................................................................... 262RDB$REF_CONSTRAINTS ....................................................................................................... 263RDB$RELATIONS .................................................................................................................... 264RDB$RELATION_CONSTRAINTS ........................................................................................... 265RDB$RELATION_FIELDS ........................................................................................................ 266RDB$ROLES ............................................................................................................................. 267RDB$SECURITY_CLASSES ..................................................................................................... 268RDB$TRANSACTIONS ............................................................................................................. 268RDB$TRIGGERS ....................................................................................................................... 269RDB$TRIGGER_MESSAGES .................................................................................................... 270RDB$TYPES ............................................................................................................................. 271RDB$USER_PRIVILEGES ........................................................................................................ 271RDB$VIEW_RELATIONS ......................................................................................................... 272

Anhang E: Monitoring Tables ............................................................................................................. 274MON$ATTACHMENTS ............................................................................................................ 275

Verwendung von MON$ATTACHMENTS um eine Verbindung zu beenden ......................... 276MON$CALL_STACK ................................................................................................................ 276MON$CONTEXT_VARIABLES ................................................................................................ 277MON$DATABASE .................................................................................................................... 278MON$IO_STATS ....................................................................................................................... 279MON$MEMORY_USAGE ......................................................................................................... 280MON$RECORD_STATS ............................................................................................................ 281MON$STATEMENTS ................................................................................................................ 282

MON$STATEMENTS zum Stoppen einer Abfrage nutzen ....................................................... 282MON$TRANSACTIONS ............................................................................................................ 283

Anhang F: Zeichenstze und Collations ............................................................................................... 285Anhang G: Lizenzhinweise ................................................................................................................. 291Anhang H: Dokumenthistorie .............................................................................................................. 292

viii

Tabellenverzeichnis3.1. bersicht der Datentypen ............................................................................................................... 123.2. Verfahren zum Speichern von reellen Zahlen .................................................................................. 173.3. Arithmetische Operationen fr Datums- und Zeitdatentypen ............................................................. 203.4. Collation fr den Zeichensatz UTF8 ............................................................................................... 233.5. Maximale Indexlnge nach Seitengre und Zeichengre ............................................................... 243.6. Konvertierungen mit CAST ........................................................................................................... 313.7. Formatierungsargumente fr Datum- und Zeit-LiteraleDate and Time Literal .................................... 323.8. Literale mit vordefinierten Datums- und Zeitwerten ......................................................................... 323.9. Regeln zum berschreiben von Domain-Eigenschaften in Spaltendefinitionen ................................... 364.1. Beschreibung der Ausdruck-Elemente ............................................................................................. 394.2. Vorrang der Operatortypen ............................................................................................................ 434.3. Vorrang arithmetischer Operatoren ................................................................................................. 444.4. Prioritten der Vergleichsoperatoren ............................................................................................... 454.5. Prioritten logischer Operatoren ..................................................................................................... 455.1. CREATE DATABASE Statement-Parameter .................................................................................. 695.2. ALTER DATABASE Statement-Parameter ..................................................................................... 735.3. CREATE SHADOW Statement-Parameter ...................................................................................... 765.4. DROP SHADOW Statement-Parameter .......................................................................................... 785.5. CREATE DOMAIN Statement-Parameter ....................................................................................... 805.6. ALTER DOMAIN Statement-Parameter ......................................................................................... 845.7. CREATE TABLE Statement-Parameter .......................................................................................... 895.8. ALTER TABLE Statement-Parameter ........................................................................................... 1035.9. DROP TABLE Statement-Parameter ............................................................................................. 1095.10. CREATE INDEX Statement-Parameter ....................................................................................... 1105.11. Maximale Anzahl Indizes pro Tabelle ......................................................................................... 1125.12. Maximale indizierbare (VAR)CHAR-Lnge ................................................................................ 1125.13. ALTER INDEX Statement-Parameter ......................................................................................... 1145.14. DROP INDEX Statement-Parameter ........................................................................................... 1155.15. SET STATISTICS Statement-Parameter ...................................................................................... 1165.16. CREATE VIEW Statement-Parameter ......................................................................................... 1175.17. ALTER VIEW Statement-Parameter ........................................................................................... 1215.18. CREATE OR ALTER VIEW Statement-Parameter ...................................................................... 1225.19. DROP VIEW Statement-Parameter ............................................................................................. 1235.20. RECREATE VIEW Statement-Parameter .................................................................................... 1235.21. CREATE TRIGGER Statement-Parameter .................................................................................. 1255.22. ALTER TRIGGER Statement-Parameter ..................................................................................... 1315.23. DROP TRIGGER Statement-Parameter ....................................................................................... 1345.24. CREATE PROCEDURE Statement-Parameter ............................................................................. 1365.25. ALTER PROCEDURE Statement-Parameter ............................................................................... 1415.26. DROP PROCEDURE Statement-Parameter ................................................................................. 1445.27. DECLARE EXTERNAL FUNCTION Statement-Parameter ......................................................... 1465.28. ALTER EXTERNAL FUNCTION Statement-Parameter .............................................................. 1495.29. DROP EXTERNAL FUNCTION Statement-Parameter ................................................................ 1505.30. DECLARE FILTER Statement-Parameter ................................................................................... 1515.31. DROP FILTER Statement-Parameter .......................................................................................... 1525.32. CREATE SEQUENCE | CREATE GENERATOR Statement-Parameter ........................................ 1545.33. ALTER SEQUENCE Statement-Parameter .................................................................................. 1545.34. SET GENERATOR Statement-Parameter .................................................................................... 1555.35. DROP SEQUENCE | DROP GENERATOR Statement-Parameter ................................................ 1565.36. CREATE EXCEPTION Statement-Parameter .............................................................................. 157

Firebird 2.5 Sprachreferenz

ix

5.37. ALTER EXCEPTION Statement-Parameter ................................................................................ 1585.38. CREATE OR ALTER EXCEPTION Statement-Parameter ........................................................... 1595.39. DROP EXCEPTION Statement-Parameter .................................................................................. 1605.40. RECREATE EXCEPTION Statement-Parameter ......................................................................... 1615.41. CREATE COLLATION Statement-Parameter ............................................................................. 1625.42. Spezifische Collations-Attribute .................................................................................................. 1625.43. DROP COLLATION Statement-Parameter .................................................................................. 1655.44. ALTER CHARACTER SET Statement-Parameter ....................................................................... 1655.45. CREATE ROLE Statement-Parameter ......................................................................................... 1675.46. COMMENT ON Statement-Parameter ........................................................................................ 1696.1. Parameter fr die RDB$ADMIN Rollen GRANT und REVOKE .................................................... 1746.2. Administrator (Superuser) Eigenschaften ................................................................................... 1766.3. CREATE USER Statement Parameter ........................................................................................... 1786.4. ALTER USER Statement Parameter ............................................................................................. 1796.5. DROP USER Statement Parameter ............................................................................................... 1816.6. GRANT Statement Parameter ....................................................................................................... 1836.7. Liste der Berechtigungen auf Tabellen .......................................................................................... 1866.8. REVOKE Anweisung Parameter .................................................................................................. 189B.1. SQLSTATE Fehlercodes und Meldungen ..................................................................................... 196B.2. SQLCODE und GDSCODE Fehlercodes und Meldungen (1) ......................................................... 204B.3. SQLCODE und GDSCODE Fehlercodes und Meldungen (2) ......................................................... 213B.4. SQLCODE und GDSCODE Fehlercodes und Meldungen (3) ......................................................... 222B.5. SQLCODE und GDSCODE Fehlercodes und Meldungen (4) ......................................................... 229D.1. Liste der Systemtabellen ............................................................................................................. 244E.1. Liste der Monitoringtabellen ........................................................................................................ 274F.1. Zeichenstze und Collations ......................................................................................................... 285

1

Kapitel 1

ber die FirebirdSQL Sprachreferenz

fr Firebird 2.5

Diese Firebird SQL Sprachreferenz ist das erste zusammenhngende Dokument, das alle Aspekte derAbfragesprache betrachtet, die von Entwicklern fr die Kommunikation ihrer Anwendungen mit demFirebird Relation Database Management System bentigt werden. Diese Sprachreferenz hat eine langeVorgeschichte.

ThemaDas Kernthema dieses Dokuments ist die vollstndige Implementierung der SQL-Abfragesprache. Firebird ent-spricht weitestgehend den internationalen Standards fr SQL in Bezug auf Datentypen, Datenspeicherstruktu-ren, Mechanismen zur referentiellen Integritt sowie Fhigkeiten zur Datenmanipulation und Zugriffsrechte.Firebird beinhaltet auerdem eine robuste Prozedursprache procedural SQL (PSQL) fr gespeicherte Pro-zeduren, Trigger und dynamisch ausfhrbare Code Blcke. Dies sind die Themen, die in diesem Dokumentbehandelt werden.

UrheberschaftDas Material fr die Zusammenstellung dieser Sprachreferenz wurde durch die Open Source Community derFirebird-Entwickler ber die letzten 15 Jahre zusammengetragen. Die bergabe der Interbase 6 Open Sour-ce-Codebasis im Juli 2000 durch das (damaligen) Inprise / Borland-Konglomerat war herzlich willkommen.Allerdings kam diese bergabe ohne Rechte zu bestehenden Dokumentationen. Seit dem Fork der Code-Basisdurch die Besitzer fr private und kommerzielle Zwecke, wurde klar, dass die nichtkommerzielle Firebird OpenSource-Community niemals Nutzungsrechte hierfr erhalten wrde.

Die zwei wichtigen Bcher des InterBase 6-Sammlung waren das Data Definition Guide und die LanguageReference. Whrend ersteres die Untermenge der Data Definition Language (DDL) abdeckte, war der Rest imzweiten Buch enthalten. Glcklicherweise war es jahrelang fr Firebird-Benutzer mglich, die PDF-Handbcheronline zu finden.

Aktualisierungen der Sprachreferenz

Das Data Definition Guide, welches die Erstellung und Wartung der Metadaten fr Datenbanken behandelt, warber Jahre hinweg gut genug: Die Data Definition Language eines DBMS ist blicherweise stabil und wchst

ber die Firebird SQL Sprachreferenz

2

nur langsam im Vergleich zur Data Manipulation Language (DML), die der Abfrage dient und die PSQL frServerbasierte Programmierung nutzt.

Der Vorsitzende des Firebird Dokumentations-Teams, Paul Vinkenoog, nahm sich der Aufgabe an, die groeMasse an Verbesserungen und Neuerungen in der DML und PSQL im Rahmen der Verffentlichungen zu doku-mentieren. Paul war persnlich verantwortlich fr das Zusammentragen sowie Zusammenstellen und, zum Gro-teil, Schreiben der kumulativen Reihe der Language Reference Updateseine fr jede Hauptversion seit v.1.5.

Die Geburt des Bigbooks

Ab etwa 2010 arbeitete Paul, mit Firebird Projektleitung Dmitry Yemanov und einem Dokumentationskolle-gen Thomas Woinke, an der Planung und dem Aufbau einer kompletten SQL-Sprachreferenz fr Firebird. Siebegannen damit auf Basis der LangRef-Updates, die volumins ist. Es wrde eine groe Aufgabe sein und fralle Beteiligten ein Freizeitersatz.

Dann, in 2013-4, zeigten zwei wohlttige Unternehmen MICEX und IBSurgeon erbarmen und beschf-tigten drei Autoren, die sich der liegengebliebenen Arbeit annahmen und die Firebird 2.5 Language Reference inrussisch verffentlichten. Sie schrieben den Groteil der fehlenden DDL-Abschnitte und erstellten, bersetztenoder verwendeten DML- und PSQL-Material aus den LangRef Updates, russischsprachigen Support-Forums,Firebird Release Notes, Readme-Dateien und anderen Quellen. Ende 2014 war die Aufgabe weitestgehenderfllt, in Form eines Microsoft Word-Dokumentes.

bersetung . . .

Die russischen Sponsoren erkannten, dass ihre Anstrengungen mit der weltweiten Firebird Community geteiltwerden mussten, und fragten einige Projektmitglieder eine Crowd-Funding-Kampagne zu starten, welche denrussischen Text professionell ins Englische bersetzen sollte. Dieser bersetzte Text wrde dann bearbeitet undin das Projektkonforme DocBook-Format bertragen sowie als Zusatz in die offene Dokumentationsbibliothekder Firebird-Projektes aufgenommen werden. Hier wren die Quellen fr weitere bersetzungen in andere Spra-chen verfgbar.

Die Kampagne zum Einsammeln der Gelder startete Ende 2014 und war erfolgreich. Im Juni, 2015, begann derprofessionelle bersetzer Dmitry Borodin mit der bersetzung des russischen Textes. Durch ihn gelangte derText zur berarbeitung und DocBook-Konvertierung an Helen Borrieund hier ist Die Firbeird SQL Sprach-referenz fr V.2.5, von ...allen!

. . . und noch mehr bersetzungen

Nach dem Erscheinen der DocBook-Quellen im CVS, werden unsere vertrauensvollen bersetzer hoffentlichmit der Arbeit an deutschen, japanischen, italienischen, franzsischen, portugisischen, spanischen und tschechi-schen bersetzungen beginnen. Gewiss ist, dass wir nie genug bersetzer haben, so bitten wir Sie, die Firebir-der, welche der englischen Sprache mchtig sind, ber die bersetzungsarbeiten in Ihre Muttersprache nachzu-denken. Auch die bersetzung von Abschnitten ist hilfreich.

Mitwirkende

Direkter Inhalt

ber die Firebird SQL Sprachreferenz

3

Dmitry Filippov (writer) Alexander Karpeykin (writer) Alexey Kovyazin (writer, editor) Dmitry Kuzmenko (writer, editor) Denis Simonov (writer, editor, coordinator) Paul Vinkenoog (writer, designer) Thomas Woinke (writer) Dmitry Yemanov (writer)

Ressourcen Inhalt

Adriano dos Santos Fernandes Alexander Peshkov Vladyslav Khorsun Claudio Valderrama Helen Borrie and others

bersetzungen

Dmitry Borodin, megaTranslations.ru

Martin Kditz, it & synergy GmbH

Bearbeitung und Konvertierung des englischen Textes

Helen Borrie

AnmerkungenDie erste komplette Sprachreferenz wre ohne die Finanzierung nicht mglich gewesen. Wir danken allen Betei-ligten fr Ihren Beitrag.

Sponsoren und andere Spender

Sponsoren der russischen Sprachreferenz

Moscow Exchange (Russland)

Moscow Exchange ist die grte Brse in Russland sowie Osteuropa, gegrndet am 19 Dezember2011, durch den Zusammenschluss der Brsengruppen MICEX (gegrndet 1992) und RTS (gegrndet1995). Moscow Exchange zhlt zu den 20 weltweit fhrenden Brsen im Handel von Anleihen undAktien, als zu den 10 grten Brsenplattformen fr Handelsderivate.

IBSurgeon (ibase.ru) (Russland)

Technischer Support und Entwickler administrativer Tools fr das Firebird DBMS.

Sponsoren des bersetzungsprojektes

Syntess Software BV (Niederlande)Mitaro Business Solutions (Liechtenstein)

http://www.moex.comhttp://www.ib-aid.comhttp://ibase.ruhttp://www.syntess.nlhttp://www.mitaro.li

ber die Firebird SQL Sprachreferenz

4

Weitere Spender

Folgend sind die Namen der Unternehmen und Personen aufgelistet, die Barmittel fr die Kosten der berset-zung ins Englische, Weiterverwarbeitung des rohen bersetzten Textes und die Konvertierung des Ganzen indas DocBook 4-Format des Firebird-Projektes freigemacht haben.

Integrity Software Design, Inc. (U.S.A.) dimari GmbH (Deutschland)beta Eigenheim GmbH (Deutschland) KIMData GmbH (Deutschland)Jason Wharton (U.S.A) Trans-X (Schweden)Sanchez Balcewich (Uruguay) Cointec Ingenieros y Consultores, S.L. (Spanien)Aage Johansen (Norwegen) Mattic Software (Niederlande)Andr Knappstein (Deutschland) Paul F. McGuire (U.S.A.)Marcus Marques da Rocha (Brasilien) Martin KerkhoffThomas Vedel (Dnemark) Bulhan Bulhan (Australien)Alexandre Benson Smith (Brasilien) Guillermo Nabrink (Brasilien)Pierre Voirin (Frankreich) Heiko Tappe (Deutschland)Doug Chamberlain (U.S.A.) Craig Cox (U.S.A.)OMNet, Inc. (Schweiz) Alfred Steller (Deutschland)Konrad Butz (Deutschland) Thomas Smekal (Kanada)Carlos H. Cantu (Brasilien) XTRALOG SARL (Frankreich)Laszlo Urmenyi (Brasilien) Fernando Pimenta (Brasilien)Rudolf Grauberger (Deutschland) Thomas Steinmaurer (Austria)Rene Lobsiger (Schweiz) Hian Pin TjioeXavier Codina Mick Arundell (Australien)Russell Belding (Neuseeland) Anticlei Scheid (Brasilien)Luca Minuti (Italien) Mark Rotteveel (Niederlande)Chris Mathews (U.S.A.) Hannes Streicher (Deutschland)Wolfgang Lemmermeyer (Deutschland) Paolo Sciarrini (Italien)Acosta Belzusarri Daniel Motos GuerraAlberto Alfonso Luna Simeon BodurovCees Meijer Robert NixonOlivier Dehorter (Frankreich) Andrs Omacht (Ungarn)Web Express Sergio ConzalezMarc Bleuwart Gabor BorosShaymon Gracia Campos Cserna Zsombor (Ungarn)David Keith Uwe GeroldDaniele Teti (Italien) Pedro Pablo Busto CriadoIstvan Szabo Spiridon PavlovicJ. L. Garcia Naranjo A. Morales MoralesHelen Cullen (Neuseeland) Francisco Ibarra Ozuna

5

Kapitel 2

SQL SprachstrukturDiese Referenz beschreibt die von Firebird untersttzte SQL-Sprache.

Hintergrund zu Firebirds SQL-SpracheZu Beginn, ein paar Punkte ber die Eigenschaften die im Hintergrund von Firebirds Sprache eine Rolle spielen.

SQL Bestandteile

Verschiedene Teilmengen von SQL gehren wiederum in verschiedene Aktivittsbereiche. Die Teilmengen inFirebirds Sprachimplementation sind:

Dynamic SQL (DSQL)

Procedural SQL (PSQL)

Embedded SQL (ESQL)

Interactive SQL (ISQL)

Dynamic SQL macht den Hauptteil der Sprache aus, der in Abschnitt (SQL/Foundation) 2 der SQL-Spezifika-tion beschrieben wird. DSQL reprsentiert Statements, die von Anwendungen ber die Firebird API durch dieDatenbank verarbeitet werden.

Procedural SQL ergnzt Anweisungen der Dynamic SQL um lokale Variablen, Zuweisungen, Bedingungen,Schleifen und andere prozedurale Verhalten. PSQL entspricht dem 4. Teil (SQL/PSM) der SQL-Spezifikationen.Ursprunglich waren PSQL-Erweiterungen nur ber persistent gespeicherte Module (Prozeduren und Trigger)verfgbar. In spteren Releases wurden diese jedoch auch in Dynamic SQL aufgenommen (vergleichen Siehierzu auch EXECUTE BLOCK).

Embedded SQL berschreibt die Untermenge von DSQL, die von Firebird gpre untersttzt wird. Dies ist dieAnwendung, welche es erlaubt, SQL-Konstrukte in Ihre Host-Programmiersprache (C, C++, Pascal, Cobol, etc.)einzubetten und diese in gltigen Firebird API-Aufrufen auszufhren.

Anmerkung

Nur ein Teil der in DSQL implementierten Anweisungen und Ausdrcke werden in ESQL untersttzt.

Interactive ISQL wird durch die Sprache beschrieben, die mittels Firebirds isql ausgefhrt werden kann.Dies ist die Befehlszeilenanwendung, fr den interaktiven Zugriff auf Datenbanken. Da dies eine regulre Cli-ent-Anwendung ist, ist ihre native Sprache in DSQL verfasst. Sie nutzt auerdem einige zustzliche Befehle,die nicht auerhalb ihrer spezifischen Umgebung gelten.

SQL Sprachstruktur

6

Sowohl DSQL wie auch PSQL werden vollstndig in dieser Referenz behandelt. Dies gilt nicht fr ESQL undISQL, sofern nicht ausdrcklich beschrieben.

SQL-Dialekte

Der Begriff SQL dialect beschreibt ein spezifisches Feature der SQL-Sprache, das bei Zugriff einer Datenbankzur Verfgung steht. SQL-Dialekte knnen auf Datenbankebene definiert und auf Verbindungsebene spezifiziertwerden. Drei Dialekte stehen zur Verfgung:

Dialect 1 dient aussschlielich der Abwrtskompatibilitt mit sehr alten InterBase-Datenbanken bis Version5. Dialekt 1-Datenbanken beinhalten einige Features, die sich von Dialekt 3, dem Firebird-Standard, unter-scheiden.

- Datums- und Zeitinformationen werden als DATE-Datentyp gespeichert. Ein TIMESTAMP-Datentyp istebenfalls verfgbar, der identisch mit dieser DATE-Implementierung ist.

- Doppelte Anfhrungszeichen drfen als Alternative fr das Apostroph als Textbegrenzer verwendet wer-den. Dies ist gegenstzlich zum SQL-Standarddoppelte Anfhrungszeichen sind fr den einen bestimm-ten Zweck sowohl in Standard SQL wie auch in Dialekt 3 reserviert. Als Textbegrenzer sollten doppelteAnfhrungszeichen demnach energisch vermieden werden.

- Die Przision fr NUMERIC- und DECIMAL-Datentypen ist geringer als im Dialekt 3 und falls die Pr-zision einer Dezimalzahl grer als 9 Stellen sein soll, wird Firebird diese intern als Fliekommazahlspeichern.

- Der Datentyp BIGINT (64-Bit Integer) wird nicht untersttzt.

- Bezeichner unterscheiden Gro- und Kleinschreibung und mssen immer den Regeln fr Bezeichner ent-sprechenvergleichen Sie den Abschnitt Bezeichner.

- Obwohl Generator-Werte als 64-Bit-Zahlen gespeichert werden, wird ein Clientaufruf von zum BeispielSELECT GEN_ID (MyGen, 1) immer einen 32-Bit-Wert zurckgeben.

Dialect 2 ist nur in der Firebird-Clientverbindung verfgbar und kann nicht in der Datenbank definiert wer-den. Hintergrund ist, Entwickler beim Debugging zu untersttzen, wenn eine regulre Datenbank von Dialekt1 zu Dialekt 3 migriert werden soll.

In Dialect 3-Datenbanken,

- werden Zahlen (DECIMAL- und NUMERIC-Datentypen) intern als lange Fliekommazahl gespeichert,sobald die Przision grer als 9 Stellen ist.

- Der TIME-Datentyp ist nur fr das Speichern von Tageszeiten gedacht.

- Der DATE-Datentyp speichert nur Datumsinformationen.

- Der BIGINT-Datentyp fr 64-Bit-Integer ist verfgbar.

- Doppelte Anfhrungszeichen sind reserviert als Begrenzer fr irregulre Bezeichner. Diese ermglichenes Objektnamen zu definieren, die Gro- und Kleinschreibung unterscheiden oder die Anforderungen anregulre Bezeichner nicht erfllen.

- Alle Zeichenketten mssen in einfachen Anfhrungszeichen begrenzt werden.

SQL Sprachstruktur

7

- Generatorwerte werden als 64-Bit-Ganzzahlen gespeichert.

Wichtig

Die Verwendung von Dialekt 3 wird strengstens fr die Entwicklung neuer Datenbanken und Anwendungenempfohlen. Sowohl die Datenbank- als auch die Verbindungsdialekte sollte zueinander passen. Ausnahmebildet die Migration mittels Dialekt 2.

Diese Referenz beschreibt die Semantic unter SQL Dialekt 3, solange nicht anders angegeben.

Fehlerbedingungen

Jede Verarbeitung eines SQL-Statements wird erfolgreich beendet oder mit einer speziellen Fehlerbedingungabgebrochen.

Grundelemente: Statements,Klauseln, Schlsselwrter

Das grundlegendste Konstrukt in SQL ist das Statement. Ein Statement definert was das DBMS mit bestimmtenDaten oder Metadaten-Objekten tun soll. Komplexere Statements bedienen sich einfacher KonstrukteKlau-seln und Optionen.

Klauseln: Eine Klausel definiert eine besteimmte Art von Derektiven in einem Statement. So bestimmt zumBeispiel die WHERE-Klausel in einem SELECT-Statement und anderen manipulativen Statements (UPDATE,DELETE) Kriterien, um Daten innerhalb einer oder mehrerer Tabellen auszuwhlen, zu aktualisieren oder zulschen. Die Klausel ORDER BY gibt an, in welcher Reihenfolge die ausgegebenen Daten Rckgabesatzsortiert werden sollen.

Optionen: Optionen sind die einfachsten Konstrukte und werden in Verbindung mit bestimmten Schlsselwr-tern eingesetzt. Wo Optionen zum Einsatz kommen, wird eine als Standard hinterlegt, solange nichts anderesangegeben wurde. So wird zum Beispiel das SELECT-Statement alle Datenzeilen zurckgeben, die die erforder-lichen Kriterien der Abfrage erfllen, es sei denn die Option DISTINCT schrnkt diese Ausgabe auf eindeutigeZeilen ein.

Schlsselwrter: Alle Schlsselwrter die im SQL-Katalog enthalten sind, werden als Schlsselwrter bezeich-net. Einige Schlsselwrter sind reserviert, das heit ihr Gebrauch als Bezeichner fr Datenbankobjekte, Para-meternamen oder Variablen ist in bestimmten oder gar allen Kontexten untersagt. Nichtreservierte Schlssel-wrter knnen als Bezeichner verwendet werden, obwohl dies nicht empfohlen wird. Von Zeit zu Zeit kann esvorkommen, dass nichtreservierte Schlsselwrter im Zuge von Spracherweiterungen reserviert werden.

Im Beispiel wird das folgende Statement ohne Fehler ausgefhrt, obwohl ABS ein Schlsselwort und nichtreserviert ist.

CREATE TABLE T (ABS INT NOT NULL);

Andererseits wird das folgende Statement mit einem Fehler beendet, da ADD sowohl ein Schlssel-wort als auch ein reserviertes Wort ist.

CREATE TABLE T (ADD INT NOT NULL);

SQL Sprachstruktur

8

Bitte vergleichen Sie auch die Auflistung reservierter Wrter und Schlsselwrter im Abschnitt ReservierteWrter und Schlsselwrter.

BezeichnerAlle Datenbankobjekte haben Namen, hufig auch Bezeichner genannt. Zwei Namensarten sind gltige Bezeich-ner: regulre Namen, hnlich den Variablennamen in regurlren Programmiersprachen, und begrenzte Namen,die spezifisch fr SQL sind. Um als gltig erachtet zu werden, muss jeder Bezeichnertyp konform zu gewissenRegeln sein:

Regeln fr regulre Objektbezeichner:

Die Zeichenlnge darf 31 Zeichen nicht bersteigen

Der Name muss mit einem unakzentuierten, 7-Bit ASCII-Zeichen beginnen. Zahlen sind nicht erlaubt. Dieweiteren Zeichen drfen aus weiteren 7-Bit ASCII-Zeichen, Zahlen, Unterstrichen oder Dollarzeichen beste-hen. Keine anderen Zeichen, darunter auch Leerzeichen, drfen Verwendung finden. Beim Namen wird nichtzwischen Gro- und Kleinschreibung unterschieden. Das heit, der Name kann sowohl in Klein- als auchGroschreibung verwendet werden. Somit sind folgende Namen fr das System gleichzusetzen:

fullname FULLNAME FuLlNaMe FullName

Syntax fr regulre Namen

::= | | | _ | $

::= |

::= A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

::= a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z

::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

Regeln fr begrenzte Objektbezeichner:

Die Zeichenlnge darf 31 Zeichen nicht berschreiten.

Die gesamte Zeichenkette muss in doppelte Anfhrungszeichen eingeschlossen werden, z.B. "anIdentifier".

Es darf jedes Zeichen eines Latin-Zeichensatzes verwendet werden, inklusive akzentuierte Zeichen, Leerzei-chen und Sonderzeichen.

Ein Bezeichner darf ein reserviertes Wort sein.

SQL Sprachstruktur

9

Begrenzte Objektbezeichner unterscheiden immer zwischen Gro- und Kleinschreibung.

Fhrende Leerzeichen werden entfernt, so wie bei jeder konstanten Zeichenkette.

Begrenzte Objektbezeichner sind nur in Dialekt 3 verfgbar. Fr mehr Details, vgl. SQL-Dialekte

Syntax fr begrenzte Objektbezeichner

::= "[ ]"

Anmerkung

Ein begrenzter Bezeichner wie "FULLNAME" ist das Gleiche wie die regulren Bezeichner FULLNAME,fullname, FullName, usw.. Der Grund hierfr ist, dass Firebird alle regulren Namen in Groschreibung spei-chert, egal wie sie definiert oder deklariert wurden. Begrenzte Bezeichner hingegen werden immer so gespei-chert, wie sie definiert wurden. Damit unterscheided sich "FullName" von FULLNAME und beispielsweiseFullName.

LiteraleLiterale werden verwendet um Daten in einem bestimmten Format zu reprsentieren. Beispiele hierfr sind:

integer - 0, -34, 45; real - 0.0, -3.14, 3.23e-23; string - 'text', 'don''t!'; date - DATE '10.01.2014'; time - TIME '15:12:56'; timestamp - TIMESTAMP '10.01.2014 13:32:02'; null state - null

Wie Literale fr die diversen Datentypen verwendet werden, wird im nchsten Abschnitt Datentypen und Unter-datentypen behandelt.

Operatoren und SonderzeichenEinige Sonderzeichen sind fr die Verwendung als Operator oder Separator reserviert.

::= | " | % | & | ' | ( | ) | * | + | , | - | . | / | : | ; | < | = | > | ? | [ | ] | ^ | { | }

Einige dieser Zeichen, allein oder in Kombination, drfen als Operatoren (arithmetisch, Zeichenkette, logisch),als SQL Befehlsseparatoren, zum Anfhren von Bezeichnern und zum Markieren von Begrenzungen von Zei-chenketten oder Kommentaren verwendet werden.

SQL Sprachstruktur

10

Syntax fr Operatoren:

::= | | |

::= {||}

::= * | / | + | - |

::= {=} | {} | {!=} | {~=} | {^=} | {>} | {=} | {} | {~>} | {^>} | {!

SQL Sprachstruktur

11

/* This text will be ignored during the execution of the statement since it is a comment */ B = A + 1; -- In-line comment SUSPEND; END

12

Kapitel 3

Datentypen undUnterdatentypen

Daten unterschiedlicher Typen werden verwendet fr:

die Spaltendefinition in Datenbanktabellen mittels CREATE TABLE-Statement oder zum ndern der Spaltenmittels ALTER TABLE

die Deklaration oder nderung einer Domain unter Verwendung der Statements CREATE DOMAIN oderALTER DOMAIN

die Deklaration lokaler Variablen in gespeicherten Prozeduren, PSQL-Blcken und Triggern sowie spezifi-zierter Parameter in gespeicherten Prozeduren

die indirekte Spezifikation von Argumenten und Rckgabewerten bei der Deklaration externer Funktionen(UDFsuser-defined functions)

die zur Verfgungstellung von Argumenten fr die Funktion CAST() um Daten von einem Typ zu einemanderen zu konvertieren

Tabelle 3.1. bersicht der Datentypen

Name GrePrzision

& GrenzenBeschreibung

BIGINT 64 Bits Von -263 bis (263 - 1) Nur in Dialekt 3 verfgbar

BLOB unterschiedlich Die Gre einesBLOB-Segments istauf 64K begrenzt.Die maximale Gr-e eines BLOB-Fel-des sind 4GB.

Ein Datentyp mit dynamisch unterschied-licher Gre fr die Ablage von groenDatenmengen, wie z.B. Bilder, Texte,Audiodaten. Die strukturelle Basiseinheitis das Segment. Der BLOB-Untertyp defi-niert dessen Inhalt.

CHAR(n),CHARACTER(n)

n Zeichen. Grein Bytes abhngigvon der Encodie-rung, der AnzahlBytes pro Zeichen

von 1 bis 32,767Bytes

Ein Datentyp mit fester Lnge. Bei Anzei-ge der Daten werden Leerzeichen an dasEnde der Zeichenkette bis zur angegebe-nen Lnge angefgt. Die Leerzeichen wer-den nicht in der Datenbank gespeichert,jedoch wiederhergestellt, um die definier-te Lnge bei Anzeige am Client zu errei-chen. Die Leerzeichen werden nicht berdas Netzwerk versendet, was den Daten-verkehr reduziert. Wurde kein Zeichenln-ge angegeben, wird 1 als Standardwert ver-wendet.

Datentypen und Unterdatentypen

13

Name GrePrzision

& GrenzenBeschreibung

DATE 32 Bits von 01.01.0001 ADbis 31.12.9999 AD

ISC_DATE. Nur Datum, kein Zeitelement

DECIMAL (pre-cision, scale)

Varying (16, 32 or64 bits)

precision = von1 bis 18, legtdie mindestmgli-che Anzahl zuspeichernder Zif-fern fest; scale =von 0 bis 18, gibt dieAnzahl der Nach-kommastellen an.

Eine Fliekommazahl, die scale Nach-kommastellen besitzt. scale muss klei-ner oder gleich dem Wert von precisi-on sein. Beispiel: DECIMAL(10,3) spei-chert eine Zahl im folgenden Format:ppppppp.sss

DOUBLE PRECI-SION

64 Bits 2.225 * 10-308 bis1.797 * 10308

Doppelte Przision nach IEEE, ~15 Stel-len, zuverlssige Gre hngt von derPlattform ab.

FLOAT 32 bits 1.175 * 10-38 bis3.402 * 1038

Einfache Przision nach IEEE, ~7 Stellen

INTEGER, INT 32 Bits -2.147.483.648 upto 2.147.483.647

Ganzzahlen mit Vorzeichen

NUMERIC (pre-cision, scale)

Unterschiedlich (16,32 oder 64 Bits)

precision = von1 bis 18, legt diegenaue Anzahl zuspeichernder Stellenfest; scale = von0 bis 18, legt dieAnzahl der Nach-kommastellen fest.

Eine Kommazahl mit scale Nachkom-mastellen. point. scale muss kleineroder gleich precision sein. Beispiel:NUMERIC(10,3) ist eine Zahl im Format:ppppppp.sss

SMALLINT 16 Bits -32.768 bis 32.767 Ganzzahlen mit Vorzeichen (word)

TIME 32 Bits 0:00 to23:59:59.9999

ISC_TIME. Tageszeit. Kann nicht zumSpiechern von Zeitintervallen verwendetwerden.

TIMESTAMP 64 Bits (2 X 32 Bits) Von Anfang desTages 01.01.0001AD bis Ende desTages 31.12.9999AD

Datum und Uhrzeit eines Tages

VARCHAR(n),CHAR VARY-ING, CHARAC-TER VARYING

n Zeichen. Grein Bytes, abhngigvon der Enkodie-rung, der Anzahlvon Bytes fr einZeichen

von 1 bis 32,765Bytes

Zeichenkette mit variabler Lnge. DieGesamtgre der Zeichen darf (32KB-3)nicht bersteigen. Dies bercksichtigt auchdie hinterlegte Enkodierung. Die beidenhinteren Bytes speichern die deklarier-te Lnge. Es gibt keine Standardgre.Das Argument n ist erforderlich. Fhren-de und abschlieende Leerzeichen werden

Datentypen und Unterdatentypen

14

Name GrePrzision

& GrenzenBeschreibung

gespeichert und nicht abgeschnitten, auerden Leerzeichen, die hinter de