2.3. Identifiers
All database objects have names, often called identifiers. Two types of names are valid as identifiers: regular names, similar to variable names in regular programming languages, and delimited names that are specific to SQL. To be valid, each type of identifier must conform to a set of rules, as follows:
2.3.1. Rules for Regular Object Identifiers
Length cannot exceed 31 characters
The name must start with an unaccented, 7-bit ASCII alphabetic character. It may be followed by other 7-bit ASCII letters, digits, underscores or dollar signs. No other characters, including spaces, are valid. The name is case-insensitive, meaning it can be declared and used in either upper or lower case. Thus, from the system’s point of view, the following names are the same:
fullname
FULLNAME
FuLlNaMe
FullName
Regular name syntax
<name> ::=
<letter> | <name><letter> | <name><digit> | <name>_ | <name>$
<letter> ::= <upper letter> | <lower letter>
<upper letter> ::= 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
<lower letter> ::= 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
<digit> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
2.3.2. Rules for Delimited Object Identifiers
Length cannot exceed 31 characters
The entire string must be enclosed in double-quotes, e.g.
"anIdentifier"
It may contain characters from any Latin character set, including accented characters, spaces and special characters
An identifier can be a reserved word
Delimited identifiers are case-sensitive in all contexts
Trailing spaces in delimited names are removed, as with any string constant
Delimited identifiers are available in Dialect 3 only. For more details on dialects, see SQL Dialects
Delimited name syntax
<delimited name> ::= "<permitted_character>[<permitted_character> …]"
A delimited identifier such as |