602SQL-Úplná dokumentace Index  

Identifikátory a vyhrazená slova (SQL)

Psaní identifikátorů

Standardně zapsané identifikátory

Standardně zapsané identifikátory jazyka SQL začínají písmenem nebo podtržítkem ("_") a mohou obsahovat písmena, číslice a podtržítko.

Přípustná jsou i národní písmena patřící do systémové znakové sady serveru, např. písmena s diakritikou.

Příklady: I, new_value, zisk_po_zdanění_2005.

Identifikátory obsahující nealfanumerické znaky

Pokud identifikátor má obsahovat jiné než alfanumerické znaky, pak musí být na začátku a na konci vymezen dvojicí speciálních omezovačů. Omezovači mohou být obrácené apostrofy nebo úvozovky. Použití uvozovek vyžaduje vhodné nastavení příznaků kompatibility SQL (pomocí procedury Set_sql_option (volba SQLOPT_QUOTED_IDENT)).

Omezovač nemůže být obsažen uvnitř takto zapsaného identifikátoru.

Příklady: `Průměrný zisk za 5 let`, "Reader's digest", `UPDATE`.

Identifikátory obsahující nezapsatelné znaky

Součástí identifikátoru může být i znak, který nelze do příkazu přímo napsat, protože na klávesnici chybí. Pro jeho zápis lze použít Unicode escape sekvenci, v níž se nezapsatelný znak nahradí svým kódem v Unicode. Před identifikátorem je vždy U&, Unicode escape sekvence začíná úvodním Unicode Escape znakem a obsahuje 4 hexadecimální číslice.

Příklady: U&`poci\0105g`, U&`po*0142owa`UESCAPE'*' (totéž jako pociąg, połowa).

Vlastností identifikátorů

Identifikátory, bez ohledu na to, kterým způsobem jsou zapsány, mohou obsahovat pouze znaky patřící do systémové znakové sady databáze.

Počet signifikantních znaků v identifikátorech je 31, proto identifikátory, které se liší až za 31. znakem, budou považovány za stejné. V identifikátorech se nerozlišuje mezi velkými a malými písmeny.

Standardní identifikátory se musí lišit od tzv. vyhrazených slov, což je skupina identifikátorů s pevně daným neměnným významem. Vyhrazená slova jsou:

"ADD", "AFTER", "ALL", "ALTER", "AND", "ANY", "AS", "ASC", "AUTHOR", "AUTOR", "AVG", "BEFORE", "BEGIN", "BETWEEN", "BIGINT", "BINARY", "BIPTR", "BIT", "BLOB", "BOOLEAN", "BY", "CALL", "CASCADE", "CASE", "CAST", "CHAR", "CHARACTER", "CHECK", "CLOB", "CLOSE", "COALESCE", "COLLATE", "COMMIT", "CONCAT", "CONDITION", "CONSTANT", "CONSTRAINT", "CONTINUE", "CORRESPONDING", "COUNT", "CREATE", "CROSS", "CURRENT", "CURSOR", "DATE", "DATIM", "DEC", "DECIMAL", "DECLARE", "DEFAULT", "DELETE", "DESC", "DISTINCT", "DIV", "DO", "DOUBLE", "DROP", "ELSE", "ELSEIF", "END", "ESCAPE", "EXCEPT", "EXISTS", "EXIT", "EXTERNAL", "FETCH", "FLOAT", "FOR", "FOREIGN", "FROM", "FULL", "FUNCTION", "GRANT", "GROUP", "HANDLER", "HAVING", "HISTORY", "IF", "IN", "INDEX", "INNER", "INOUT", "INSERT", "INT", "INTEGER", "INTERSECT", "INTO", "IS", "JOIN", "KEY", "LARGE", "LEAVE", "LEFT", "LIKE", "LONG", "LOOP", "MAX", "MIN", "MOD", "NATIONAL", "NATURAL", "NCHAR", "NOT", "NULL", "NULLIF", "NUMERIC", "OBJECT", "OF", "ON", "OPEN", "OR", "ORDER", "OTHERS", "OUT", "OUTER", "POINTER", "PRECISION", "PRIMARY", "PROCEDURE", "PUBLIC", "REAL", "REDO", "REFERENCES", "REFERENCING", "RELEASE", "REPEAT", "RESIGNAL", "RESTRICT", "RETURN", "RETURNS", "REVOKE", "RIGHT", "ROLLBACK", "SAVEPOINT", "SELECT", "SET", "SIGNAL", "SIGNATURE", "SMALLINT", "SOME", "SQLEXCEPTION", "SQLSTATE", "SQLWARNING", "START", "SUM", "TABLE", "THEN", "TIME", "TIMESTAMP", "TO", "TRIGGER", "TUPLE", "UNDO", "UNION", "UNIQUE", "UNTIL", "UPDATABLE", "UPDATE", "USER", "USING", "VALUES", "VARBINARY", "VARCHAR", "VARYING", "VIEW", "WHEN", "WHERE", "WHILE", "WITH".

Řada dalších slov má v SQL předem daný význam, nejsou však vyhrazena, a tudíž je lze volně používat ve funkci identifikátorů.

Rozšíření proti normě

Odlišnosti od normy