Un problème récurrent provient de la tentative de création de
      tables avec des noms de colonnes qui sont des types de champs ou
      des fonctions natives de MySQL, comme TIMESTAMP
      ou GROUP. Il vous st permis de le faire (par
      exemple ABS est permis comme nom de colonne),
      mais les espaces ne sont pas permis entre le nom d'une fonction et
      la première ‘(’ suivante lors de
      l'utilisation de fonctions qui sont aussi des noms de colonnes.
    
Un effet secondaire de ce comportement est que l'omission d'espace dans certains contexte fait que l'identifiant est interprété comme un nom de fonction. Par exemple, cette commande est valide :
mysql> CREATE TABLE abs (val INT);
      Mais omettre l'espace après abs génère une
      erreur de syntaxe, car la commande semble utiliser la fonction
      ABS() :
    
mysql> CREATE TABLE abs(val INT);
      Si vous lancez le serveur l'option de mode
      IGNORE_SPACE, le serveur autorisera l'appel de
      fonction avec un espace entre le nom de la fonction et le
      caractère de parenthèse ouvrante
      ‘(’ suivant. Les noms de fonctions
      sont alors considérés comme des mots réservés. Comme pour les
      résultats, les noms de colonnes qui sont identiques au nom de
      fonctions doivent être placés entre guillemets, tels que décrit
      dans Section 9.2, « Noms de bases, tables, index, colonnes et alias ». Le mode SQL du serveur est
      contrôlé par la procédure de la section
      Section 1.5.2, « Sélectionner les modes SQL ».
    
      Les mots suivants sont explicitement réservés en MySQL. La
      plupart sont interdits par ANSI SQL92 en tant que nom de colonnes
      ou de tables (par exemple, GROUP). Quelques uns
      sont réservés parce que MySQL en a besoin et utilise
      (actuellement) un analyseur yacc :
    
ADD | 
ALL | 
ALTER | 
ANALYZE | 
AND | 
AS | 
ASC | 
ASENSITIVE | 
BEFORE | 
BETWEEN | 
BIGINT | 
BINARY | 
BLOB | 
BOTH | 
BY | 
CALL | 
CASCADE | 
CASE | 
CHANGE | 
CHAR | 
CHARACTER | 
CHECK | 
COLLATE | 
COLUMN | 
CONDITION | 
CONSTRAINT | 
CONTINUE | 
CONVERT | 
CREATE | 
CROSS | 
CURRENT_DATE | 
CURRENT_TIME | 
CURRENT_TIMESTAMP | 
CURRENT_USER | 
CURSOR | 
DATABASE | 
DATABASES | 
DAY_HOUR | 
DAY_MICROSECOND | 
DAY_MINUTE | 
DAY_SECOND | 
DEC | 
DECIMAL | 
DECLARE | 
DEFAULT | 
DELAYED | 
DELETE | 
DESC | 
DESCRIBE | 
DETERMINISTIC | 
DISTINCT | 
DISTINCTROW | 
DIV | 
DOUBLE | 
DROP | 
DUAL | 
EACH | 
ELSE | 
ELSEIF | 
ENCLOSED | 
ESCAPED | 
EXISTS | 
EXIT | 
EXPLAIN | 
FALSE | 
FETCH | 
FLOAT | 
FLOAT4 | 
FLOAT8 | 
FOR | 
FORCE | 
FOREIGN | 
FROM | 
FULLTEXT | 
GRANT | 
GROUP | 
HAVING | 
HIGH_PRIORITY | 
HOUR_MICROSECOND | 
HOUR_MINUTE | 
HOUR_SECOND | 
IF | 
IGNORE | 
IN | 
INDEX | 
INFILE | 
INNER | 
INOUT | 
INSENSITIVE | 
INSERT | 
INT | 
INT1 | 
INT2 | 
INT3 | 
INT4 | 
INT8 | 
INTEGER | 
INTERVAL | 
INTO | 
IS | 
ITERATE | 
JOIN | 
KEY | 
KEYS | 
KILL | 
LEADING | 
LEAVE | 
LEFT | 
LIKE | 
LIMIT | 
LINES | 
LOAD | 
LOCALTIME | 
LOCALTIMESTAMP | 
LOCK | 
LONG | 
LONGBLOB | 
LONGTEXT | 
LOOP | 
LOW_PRIORITY | 
MATCH | 
MEDIUMBLOB | 
MEDIUMINT | 
MEDIUMTEXT | 
MIDDLEINT | 
MINUTE_MICROSECOND | 
MINUTE_SECOND | 
MOD | 
MODIFIES | 
NATURAL | 
NOT | 
NO_WRITE_TO_BINLOG | 
NULL | 
NUMERIC | 
ON | 
OPTIMIZE | 
OPTION | 
OPTIONALLY | 
OR | 
ORDER | 
OUT | 
OUTER | 
OUTFILE | 
PRECISION | 
PRIMARY | 
PROCEDURE | 
PURGE | 
READ | 
READS | 
REAL | 
REFERENCES | 
REGEXP | 
RELEASE | 
RENAME | 
REPEAT | 
REPLACE | 
REQUIRE | 
RESTRICT | 
RETURN | 
REVOKE | 
RIGHT | 
RLIKE | 
SCHEMA | 
SCHEMAS | 
SECOND_MICROSECOND | 
SELECT | 
SENSITIVE | 
SEPARATOR | 
SET | 
SHOW | 
SMALLINT | 
SONAME | 
SPATIAL | 
SPECIFIC | 
SQL | 
SQLEXCEPTION | 
SQLSTATE | 
SQLWARNING | 
SQL_BIG_RESULT | 
SQL_CALC_FOUND_ROWS | 
SQL_SMALL_RESULT | 
SSL | 
STARTING | 
STRAIGHT_JOIN | 
TABLE | 
TERMINATED | 
THEN | 
TINYBLOB | 
TINYINT | 
TINYTEXT | 
TO | 
TRAILING | 
TRIGGER | 
TRUE | 
UNDO | 
UNION | 
UNIQUE | 
UNLOCK | 
UNSIGNED | 
UPDATE | 
USAGE | 
USE | 
USING | 
UTC_DATE | 
UTC_TIME | 
UTC_TIMESTAMP | 
VALUES | 
VARBINARY | 
VARCHAR | 
VARCHARACTER | 
VARYING | 
WHEN | 
WHERE | 
WHILE | 
WITH | 
WRITE | 
XOR | 
YEAR_MONTH | 
ZEROFILL | 
Voici de nouveaux mots réservés en MySQL : 5.0:
ASENSITIVE | 
CALL | 
CONDITION | 
CONTINUE | 
CURSOR | 
DECLARE | 
DETERMINISTIC | 
EACH | 
ELSEIF | 
EXIT | 
FETCH | 
INOUT | 
INSENSITIVE | 
ITERATE | 
LEAVE | 
LOOP | 
MODIFIES | 
OUT | 
READS | 
RELEASE | 
REPEAT | 
RETURN | 
SCHEMA | 
SCHEMAS | 
SENSITIVE | 
SPECIFIC | 
SQL | 
SQLEXCEPTION | 
SQLSTATE | 
SQLWARNING | 
TRIGGER | 
UNDO | 
WHILE | 
Les symboles suivants (issus de la table ci-dessus) sont interdits par ANSI SQL mais permis par MySQL en tant que noms de colonnes ou de tables. Cela est dû au fait que ces noms sont très courants, et de nombreux programmeur les ont déjà utilisés.
          ACTION
        
          BIT
        
          DATE
        
          ENUM
        
          NO
        
          TEXT
        
          TIME
        
          TIMESTAMP
        
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.
