Firebird 6.0 Language Reference
Revision History
| unspecified | TBD |
Table of Contents
- 1. About the Firebird 6.0 Language Reference
- 2. SQL Language Structure
- 3. Data Types and Subtypes
- 3.1. Integer Data Types
- 3.2. Floating-Point Data Types
- 3.3. Fixed-Point Data Types
- 3.4. Data Types for Dates and Times
- 3.5. Character Data Types
- 3.6. Boolean Data Type
- 3.7. Binary Data Types
- 3.8. Array Types
- 3.9. Special Data Types
- 3.10. Conversion of Data Types
- 3.11. Custom Data Types — Domains
- 3.12. Data Type Declaration Syntax
- 4. Common Language Elements
- 4.1. Expressions
- 4.2. Predicates
- 4.2.1. Conditions
- 4.2.2. Comparison Predicates
- 4.2.3. Existential Predicates
- 4.2.4. Quantified Subquery Predicates
- 5. Data Definition (DDL) Statements
- 5.1.
DATABASE - 5.2.
SHADOW - 5.3.
SCHEMA - 5.4.
DOMAIN - 5.5.
TABLE- 5.5.1.
CREATE TABLE- 5.5.1.1. Character Columns
- 5.5.1.2. Setting a
DEFAULTValue - 5.5.1.3. Domain-based Columns
- 5.5.1.4. Identity Columns (Autoincrement)
- 5.5.1.5. Computed Columns
- 5.5.1.6. Defining an Array Column
- 5.5.1.7. Constraints
- 5.5.1.8.
SQL SECURITYClause - 5.5.1.9. Replication Management
- 5.5.1.10. Who Can Create a Table
- 5.5.1.11.
CREATE TABLEExamples - 5.5.1.12. Global Temporary Tables (GTT)
- 5.5.1.13. External Tables
- 5.5.2.
ALTER TABLE- 5.5.2.1. Version Count Increments
- 5.5.2.2. The
ADD COLUMNClause - 5.5.2.3. The
ADD CONSTRAINTClause - 5.5.2.4. The
DROP COLUMNClause - 5.5.2.5. The
DROP CONSTRAINTClause - 5.5.2.6. The
ALTER [COLUMN]Clause - 5.5.2.7. Renaming a Column: the
TOClause - 5.5.2.8. Changing the Data Type of a Column: the
TYPEClause - 5.5.2.9. Changing the Position of a Column: the
POSITIONClause - 5.5.2.10. The
DROP DEFAULTandSET DEFAULTClauses - 5.5.2.11. The
SET NOT NULLandDROP NOT NULLClauses - 5.5.2.12. The
COMPUTED [BY]orGENERATED ALWAYS ASClauses - 5.5.2.13. Changing Identity Columns
- 5.5.2.14. Changing SQL Security
- 5.5.2.15. Replication Management
- 5.5.2.16. Attributes that Cannot Be Altered
- 5.5.2.17. Who Can Alter a Table?
- 5.5.2.18. Examples Using
ALTER TABLE
- 5.5.3.
DROP TABLE - 5.5.4.
RECREATE TABLE
- 5.5.1.
- 5.6.
INDEX- 5.6.1.
CREATE INDEX - 5.6.2.
ALTER INDEX - 5.6.3.
DROP INDEX - 5.6.4.
SET STATISTICS
- 5.6.1.
- 5.7.
VIEW - 5.8.
TRIGGER - 5.9.
PROCEDURE - 5.10.
FUNCTION - 5.11.
EXTERNAL FUNCTION - 5.12.
PACKAGE - 5.13.
PACKAGE BODY - 5.14.
FILTER - 5.15.
SEQUENCE(GENERATOR) - 5.16.
EXCEPTION - 5.17.
COLLATION - 5.18.
CHARACTER SET - 5.19. Comments
- 5.1.
- 6. Data Manipulation (DML) Statements
- 6.1.
SELECT- 6.1.1.
FIRST,SKIP - 6.1.2. The
SELECTColumns List - 6.1.3. The
FROMclause - 6.1.4. Joins
- 6.1.5. The
WHEREclause - 6.1.6. The
GROUP BYclause - 6.1.7. The
WINDOWClause - 6.1.8. The
PLANClause - 6.1.9.
UNION - 6.1.10.
ORDER BY - 6.1.11.
ROWS - 6.1.12.
OFFSET,FETCH - 6.1.13.
FOR UPDATE [OF] - 6.1.14.
WITH LOCK - 6.1.15.
OPTIMIZE FOR - 6.1.16.
INTO - 6.1.17. Common Table Expressions (
)WITH … AS … SELECT - 6.1.18. Full
SELECTSyntax
- 6.1.1.
- 6.2.
INSERT - 6.3.
UPDATE - 6.4.
UPDATE OR INSERT - 6.5.
DELETE - 6.6.
MERGE - 6.7.
EXECUTE PROCEDURE - 6.8.
EXECUTE BLOCK
- 6.1.
- 7. Procedural SQL (PSQL) Statements
- 7.1. Elements of PSQL
- 7.2. Stored Procedures
- 7.3. Stored Functions
- 7.4. PSQL Blocks
- 7.5. Packages
- 7.6. Triggers
- 7.7. Writing the Body Code
- 7.7.1. Assignment Statements
- 7.7.2. Management Statements in PSQL
- 7.7.3.
DECLARE VARIABLE - 7.7.4.
DECLARE .. CURSOR - 7.7.5.
DECLARE FUNCTION - 7.7.6.
DECLARE PROCEDURE - 7.7.7.
BEGIN … END - 7.7.8.
IF … THEN … ELSE - 7.7.9.
WHILE … DO - 7.7.10.
BREAK - 7.7.11.
LEAVE - 7.7.12.
CONTINUE - 7.7.13.
EXIT - 7.7.14.
SUSPEND - 7.7.15.
EXECUTE STATEMENT - 7.7.16.
FOR SELECT - 7.7.17.
FOR EXECUTE STATEMENT - 7.7.18. Range-based
FOR - 7.7.19.
OPEN - 7.7.20.
FETCH - 7.7.21.
CLOSE - 7.7.22.
IN AUTONOMOUS TRANSACTION - 7.7.23.
POST_EVENT - 7.7.24.
RETURN
- 7.8. Trapping and Handling Errors
- 8. Built-in Scalar Functions
- 8.1. Context Functions
- 8.2. Mathematical Functions
- 8.2.1.
ABS() - 8.2.2.
ACOS() - 8.2.3.
ACOSH() - 8.2.4.
ASIN() - 8.2.5.
ASINH() - 8.2.6.
ATAN() - 8.2.7.
ATAN2() - 8.2.8.
ATANH() - 8.2.9.
CEIL(),CEILING() - 8.2.10.
COS() - 8.2.11.
COSH() - 8.2.12.
COT() - 8.2.13.
EXP() - 8.2.14.
FLOOR() - 8.2.15.
LN() - 8.2.16.
LOG() - 8.2.17.
LOG10() - 8.2.18.
MOD() - 8.2.19.
PI() - 8.2.20.
POWER() - 8.2.21.
RAND() - 8.2.22.
ROUND() - 8.2.23.
SIGN() - 8.2.24.
SIN() - 8.2.25.
SINH() - 8.2.26.
SQRT() - 8.2.27.
TAN() - 8.2.28.
TANH() - 8.2.29.
TRUNC()
- 8.2.1.
- 8.3. String and Binary Functions
- 8.3.1.
ASCII_CHAR() - 8.3.2.
ASCII_VAL() - 8.3.3.
BASE64_DECODE() - 8.3.4.
BASE64_ENCODE() - 8.3.5.
BIT_LENGTH() - 8.3.6.
BLOB_APPEND() - 8.3.7.
BTRIM() - 8.3.8.
CHAR_LENGTH(),CHARACTER_LENGTH() - 8.3.9.
CRYPT_HASH() - 8.3.10.
HASH() - 8.3.11.
HEX_DECODE() - 8.3.12.
HEX_ENCODE() - 8.3.13.
LEFT() - 8.3.14.
LOWER() - 8.3.15.
LPAD() - 8.3.16.
LTRIM() - 8.3.17.
OCTET_LENGTH() - 8.3.18.
OVERLAY() - 8.3.19.
POSITION() - 8.3.20.
REPLACE() - 8.3.21.
REVERSE() - 8.3.22.
RIGHT() - 8.3.23.
RPAD() - 8.3.24.
SUBSTRING() - 8.3.25.
RTRIM() - 8.3.26.
TRIM() - 8.3.27.
UNICODE_CHAR() - 8.3.28.
UNICODE_VAL() - 8.3.29.
UPPER()
- 8.3.1.
- 8.4. Date and Time Functions
- 8.5. Type Casting Functions
- 8.6. Bitwise Functions
- 8.7. UUID Functions
- 8.8. Functions for Sequences (Generators)
- 8.9. Conditional Functions
- 8.10. Special Functions for
DECFLOAT - 8.11. Cryptographic Functions
- 8.12. Other Functions
- 9. Aggregate Functions
- 9.1.
FILTERClause for Aggregate Functions - 9.2.
WITHIN GROUPClause for Aggregate Functions - 9.3. General-purpose Aggregate Functions
- 9.4. Statistical Aggregate Functions
- 9.5. Linear Regression Aggregate Functions
- 9.6. Inverse Distribution Functions
- 9.7. Bitwise Aggregate Functions
- 9.1.
- 10. Built-in Table-valued Functions
- 11. Window (Analytical) Functions
- 12. System Packages
- 13. Context Variables
- 13.1.
CURRENT_CONNECTION - 13.2.
CURRENT_DATE - 13.3.
CURRENT_ROLE - 13.4.
CURRENT_SCHEMA - 13.5.
CURRENT_TIME - 13.6.
CURRENT_TIMESTAMP - 13.7.
CURRENT_TRANSACTION - 13.8.
CURRENT_USER - 13.9.
DELETING - 13.10.
GDSCODE - 13.11.
INSERTING - 13.12.
LOCALTIME - 13.13.
LOCALTIMESTAMP - 13.14.
NEW - 13.15.
'NOW' - 13.16.
OLD - 13.17.
RESETTING - 13.18.
ROW_COUNT - 13.19.
SQLCODE - 13.20.
SQLSTATE - 13.21.
'TODAY' - 13.22.
'TOMORROW' - 13.23.
UPDATING - 13.24.
'YESTERDAY' - 13.25.
USER
- 13.1.
- 14. Transaction Control
- 14.1. Transaction Statements
- 14.1.1.
SET TRANSACTION - 14.1.2.
COMMIT - 14.1.3.
ROLLBACK - 14.1.4.
SAVEPOINT - 14.1.5.
RELEASE SAVEPOINT - 14.1.6. Internal Savepoints
- 14.1.7. Savepoints and PSQL
- 14.1.1.
- 14.1. Transaction Statements
- 15. Security
- 15.1. User Authentication
- 15.2. SQL Statements for User Management
- 15.3. SQL Privileges
- 15.4.
ROLE - 15.5. Statements for Granting Privileges
- 15.5.1.
GRANT- 15.5.1.1. The
TOClause - 15.5.1.2. The
WITH GRANT OPTIONClause - 15.5.1.3. The
GRANTED BYClause - 15.5.1.4. Privileges on Tables and Views
- 15.5.1.5. The
EXECUTEPrivilege - 15.5.1.6. The
USAGEPrivilege - 15.5.1.7. DDL Privileges
- 15.5.1.8. Database DDL Privileges
- 15.5.1.9. Examples of Granting Database DDL Privileges
- 15.5.1.10. Assigning Roles
- 15.5.1.1. The
- 15.5.1.
- 15.6. Statements for Revoking Privileges
- 15.7. Mapping of Users to Objects
- 15.8. Database Encryption
- 15.9. SQL Security
- 16. Management Statements
- 16.1. Data Type Behaviour
- 16.2. Connections Pool Management
- 16.3. Changing the Current Role
- 16.4. Changing the Schema Search Path
- 16.5. Session Timeouts
- 16.6. Time Zone Management
- 16.7. Optimizer Configuration
- 16.8. Reset Session State
- 16.9. Debugging
- A. Supplementary Information
- B. Exception Codes and Messages
- C. Reserved Words and Keywords
- D. System Tables
- D.1.
RDB$AUTH_MAPPING - D.2.
RDB$BACKUP_HISTORY - D.3.
RDB$CHARACTER_SETS - D.4.
RDB$CHECK_CONSTRAINTS - D.5.
RDB$COLLATIONS - D.6.
RDB$CONFIG - D.7.
RDB$DATABASE - D.8.
RDB$DB_CREATORS - D.9.
RDB$DEPENDENCIES - D.10.
RDB$EXCEPTIONS - D.11.
RDB$FIELDS - D.12.
RDB$FIELD_DIMENSIONS - D.13.
RDB$FILES - D.14.
RDB$FILTERS - D.15.
RDB$FORMATS - D.16.
RDB$FUNCTIONS - D.17.
RDB$FUNCTION_ARGUMENTS - D.18.
RDB$GENERATORS - D.19.
RDB$INDEX_SEGMENTS - D.20.
RDB$INDICES - D.21.
RDB$KEYWORDS - D.22.
RDB$LOG_FILES - D.23.
RDB$PACKAGES - D.24.
RDB$PAGES - D.25.
RDB$PROCEDURES - D.26.
RDB$PROCEDURE_PARAMETERS - D.27.
RDB$PUBLICATIONS - D.28.
RDB$PUBLICATION_TABLES - D.29.
RDB$REF_CONSTRAINTS - D.30.
RDB$RELATIONS - D.31.
RDB$RELATION_CONSTRAINTS - D.32.
RDB$RELATION_FIELDS - D.33.
RDB$ROLES - D.34.
RDB$SECURITY_CLASSES - D.35.
RDB$TIME_ZONES - D.36.
RDB$TRANSACTIONS - D.37.
RDB$TRIGGERS - D.38.
RDB$TRIGGER_MESSAGES - D.39.
RDB$TYPES - D.40.
RDB$USER_PRIVILEGES - D.41.
RDB$VIEW_RELATIONS
- D.1.
- E. Monitoring Tables
- F. Security tables
- G. Plugin tables
- G.1.
PLG$PROF_CURSORS - G.2.
PLG$PROF_PSQL_STATS - G.3.
PLG$PROF_PSQL_STATS_VIEW - G.4.
PLG$PROF_RECORD_SOURCES - G.5.
PLG$PROF_RECORD_SOURCE_STATS - G.6.
PLG$PROF_RECORD_SOURCE_STATS_VIEW - G.7.
PLG$PROF_REQUESTS - G.8.
PLG$PROF_SESSIONS - G.9.
PLG$PROF_STATEMENTS - G.10.
PLG$PROF_STATEMENT_STATS_VIEW - G.11.
PLG$SRP - G.12.
PLG$USERS
- G.1.
- H. Character Sets and Collations
- I. License notice
- J. Document History