SQL provides two types of identifiers that are used to specify the names of database objects, such as tables, columns, constraints and indexes, views, triggers, and user-defined procedures and functions.
NexusDB V3 only allows codepage neutral ANSI characters in identifiers, that is characters having the same ordinal value regardless of codepage. The following table shows the valid characters that can be used in identifiers:
Character |
Code |
Symbol |
Space |
#32 |
|
Exclamation mark |
#33 |
! |
Pound sign |
#35 |
# |
Dollar sign |
#36 |
$ |
Percent |
#37 |
% |
Ampersand |
#38 |
& |
Left parenthesis |
#40 |
( |
Right parenthesis |
#41 |
) |
Plus sign |
#43 |
+ |
Minus sign |
#45 |
- |
Digit |
#48..#57 |
0..9 |
At sign |
#64 |
@ |
Upper case letter |
#65..#90 |
A..Z |
Left bracket |
#91 |
[ |
Right bracket |
#93 |
] |
Circumflex |
#94 |
^ |
Underscore |
#95 |
_ |
Lower case letter |
#97..#122 |
a..z |
Left brace |
#123 |
{ |
Right brace |
#125 |
} |
Tilde |
#126 |
~ |
A regular identifier is an unquoted string of characters.
♦ | Regular identifiers cannot contain spaces or any of the following characters: |
Percent (#37)
Ampersand (#38)
Left parenthesis (#40)
Right parenthesis (#41)
Plus sign (#43)
Minus sign (#45)
Left bracket (#91)
Right bracket (#93)
♦ | Regular identifiers cannot begin with a decimal digit. |
♦ | Regular identifiers are case-insensitive. |
♦ | The maximum length of regular identifiers is 128 characters. |
Delimited identifiers
A delimited identifier is a string of characters enclosed by double quotation marks.
♦ | Delimited identifiers can contain spaces, but not as leading or trailing characters. |
♦ | Delimited identifiers are case-insensitive in NexusDB SQL, while they are case-sensitive in SQL:2003. |
♦ | The maximum length of delimited identifiers is 128 characters. |
All persistent database objects, such as tables, views, triggers and user-defined procedures and functions, have a two-part name consisting of the schema name and the object name separated by a period. For example, a table with the name "students" that is stored in a database called "students database", can be referenced in either of the following ways:
♦ | "students database"."students" |
♦ | "students database".students |
♦ | "students" |
♦ | students |
♦ | Schema and database object names shall be a valid regular or delimited identifier. |
♦ | NexusDB table names must additionally follow the requirements for valid file names in Windows. |
♦ | A database object that is stored in the current database may be referenced by its unqualified one-part name, or the schema-qualified two-part name for clarity. |
♦ | A database object that is stored in a database other than the current database, must be referenced by its schema-qualified two-part name. |