[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
10.2.1 Identifier Qualifiers | ||
10.2.2 Identifier Case Sensitivity |
Database, table, index, column, and alias names are identifiers. This section describes the allowable syntax for identifiers in MySQL.
The following table describes the maximum length and allowable characters for each type of identifier.
Identifier | Maximum length (bytes) | Allowed characters |
Database | 64 | Any character that is allowed in a directory name except `/', `\', or `.' |
Table | 64 | Any character that is allowed in a filename, except `/', `\', or `.' |
Column | 64 | All characters |
Index | 64 | All characters |
Alias | 255 | All characters |
In addition to the restrictions noted in the table, no identifier can contain ASCII 0, ASCII 255, or the quoting character.
An identifier may be quoted or unquoted. If an identifier is a reserved word or contains special characters, you must quote it whenever you refer to it. For a list of reserved words, see 10.6 Treatment of Reserved Words in MySQL. Special characters are those outside the set of alphanumeric characters from the current character set, `_', and `$'.
The quote character is the backtick (``'):
mysql> SELECT * FROM `select` WHERE `select`.id > 100; |
If the server SQL mode includes the ANSI_QUOTES
mode option,
it is also allowable to quote identifiers with double quotes:
mysql> CREATE TABLE "test" (col INT); ERROR 1064: You have an error in your SQL syntax. (...) mysql> SET sql_mode="ANSI_QUOTES"; mysql> CREATE TABLE "test" (col INT); Query OK, 0 rows affected (0.00 sec) |
See section 1.8.2 Selecting SQL Modes.
Identifier quoting was introduced in MySQL 3.23.6 to allow use of identifiers that are reserved words or that contain special characters. Before 3.23.6, cannot use identifiers that require quotes, so the rules for legal identifiers are more restrictive:
--default-character-set
option
to mysqld
.
See section 5.7.1 The Character Set Used for Data and Sorting.
It is recommended that you do not use names like 1e
, because
an expression like 1e+1
is ambiguous. It may be interpreted as the
expression 1e + 1
or as the number 1e+1
.
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |