For our book we collected these rules about identifiers:
• In the first character position, MySQL accepts an alphanumeric, '_' or '$', but some RDBMSs forbid digits here, so for portability do not use them.
• The first character of the name of a database, table, column or index may be followed by any character allowed in a directory name to a maximum length of 64, or 255 for aliases. For portability, a safe maximum is 30.
• Identifiers can be qualified (tblname.colname), and quoted by backticks (`tblname`) or by double quotes if sql_mode includes ansi_quotes.
• Identifiers not quoted as above cannot be case-insensitive-identical with any reserved word.
http://dev.mysql.com/doc/mysqld-version-reference/en/mysqld-version-reference-reservedwords.html points to version-specific lists of reserved words.
PB
http://www.artfulsoftware.com