Un problema común se origina cuando se intenta utilizar en un
      identificador tal como un nombre de tabla o columna el nombre de
      un tipo de dato o una función incorporados en MySQL, como
      TIMESTAMP o GROUP. Es
      posible hacer esto (por ejemplo, ABS es un
      nombre de columna válido). Sin embargo, por defecto, al invocar
      una función no se permiten espacios entre su nombre y el
      carácter '(' que le sigue. Este requisito
      permite distinguir entre una llamada a una función y una
      referencia a una columna con el mismo nombre.
    
Un efecto secundario de este comportamiento es que omitir un espacio en ciertos contextos provoca que un identificador sea interpretado como un nombre de función. Por ejemplo, esta sentencia es legal:
mysql> CREATE TABLE abs (val INT);
      Pero al omitirse el espacio luego de abs, se
      produce un error de sintaxis porque la sentencia pasa a invocar la
      función ABS():
    
mysql> CREATE TABLE abs(val INT);
      Si el modo de servidor SQL incluye el valor
      IGNORE_SPACE, el servidor permite que las
      invocaciones a funciones tengan espacios en blanco entre el nombre
      de la función y el carácter '(' que le sigue.
      Esto convierte a los nombres de funciones en palabras reservadas.
      Como resultado, los identificadores que tienen similar nombre a
      una función deben ser delimitados por comillas como se describe
      en Sección 9.2, “Nombres de bases de datos, tablas, índices, columnas y alias”. Para controlar el modo de
      servidor SQL consulte Sección 5.3.2, “El modo SQL del servidor”.
    
Una palabra a continuación de un punto en un nombre calificado (por ejemplo nom_bd.nom_tabla) debe ser un identificador, por lo que no es necesario delimitarlo, incluso si es una palabra reservada.
      Las palabras en la siguiente tabla están explícitamente
      reservadas en MySQL. La mayoría de ellas están prohibidas por el
      estándar SQL para ser empleadas como nombres de columnas y/o
      tablas (por ejemplo, GROUP). Unas pocas son
      reservadas porque MySQL las necesita y (actualmente) utiliza un
      intérprete (parser) yacc. Una palabra
      reservada puede emplearse como identificador si se la delimita con
      comillas.
    
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 | 
Siguen las nuevas palabras reservadas de 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 | 
MySQL permite que algunas palabras clave sean utilizadas como identificadores sin delimitar porque mucha gente las ha usado previamente. Por ejemplo:
          ACTION
        
          BIT
        
          DATE
        
          ENUM
        
          NO
        
          TEXT
        
          TIME
        
          TIMESTAMP
        
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.
