- Keywords and Reserved Words
Keywords and Reserved Words
关键字在 SQL 中有特殊的意义, 例如 SELECT, UPDATE, DELETE,在作为表名跟函数名的时候,需要特殊对待,例如作为表名,保留字需要被反引号包住:
mysql> CREATE TABLE select (a INT);ERROR 1105 (HY000): line 0 column 19 near " (a INT)" (total length 27)mysql> CREATE TABLE `select` (a INT);Query OK, 0 rows affected (0.09 sec)
BEGIN 和 END 是关键字, 但不是保留字,所以不需要反引号:
mysql> CREATE TABLE `select` (BEGIN int, END int);Query OK, 0 rows affected (0.09 sec)
有一种特殊情况, 如果使用了限定符 .,那么也不需要用反引号:
mysql> CREATE TABLE test.select (BEGIN int, END int);Query OK, 0 rows affected (0.08 sec)
下表列出了在 TiDB 中的关键字跟保留字,保留字用 (R) 来标识:
| ACTION | ADD (R) | ADDDATE | |
|---|---|---|---|
| ADMIN | AFTER | ALL (R) | |
| ALTER (R) | ALWAYS | ANALYZE(R) | |
| AND (R) | ANY | AS (R) | |
| ASC (R) | ASCII | AUTO_INCREMENT | |
| AVG | AVG_ROW_LENGTH | BEGIN | |
| BETWEEN (R) | BIGINT (R) | BINARY (R) | |
| BINLOG | BIT | BIT_XOR | |
| BLOB (R) | BOOL | BOOLEAN | |
| BOTH (R) | BTREE | BY (R) | |
| BYTE | CASCADE (R) | CASE (R) | |
| CAST | CHANGE (R) | CHAR (R) | |
| CHARACTER (R) | CHARSET | CHECK (R) | |
| CHECKSUM | COALESCE | COLLATE (R) | |
| COLLATION | COLUMN (R) | COLUMNS | |
| COMMENT | COMMIT | COMMITTED | |
| COMPACT | COMPRESSED | COMPRESSION | |
| CONNECTION | CONSISTENT | CONSTRAINT (R) | |
| CONVERT (R) | COUNT | CREATE (R) | |
| CROSS (R) | CURRENT_DATE (R) | CURRENT_TIME (R) | |
| CURRENT_TIMESTAMP (R) | CURRENT_USER (R) | CURTIME | |
| DATA | DATABASE (R) | DATABASES (R) | |
| DATE | DATE_ADD | DATE_SUB | |
| DATETIME | DAY | DAY_HOUR (R) | |
| DAY_MICROSECOND (R) | DAY_MINUTE (R) | DAY_SECOND (R) | |
| DDL | DEALLOCATE | DEC | |
| DECIMAL (R) | DEFAULT (R) | DELAY_KEY_WRITE | |
| DELAYED (R) | DELETE (R) | DESC (R) | |
| DESCRIBE (R) | DISABLE | DISTINCT (R) | |
| DISTINCTROW (R) | DIV (R) | DO | |
| DOUBLE (R) | DROP (R) | DUAL (R) | |
| DUPLICATE | DYNAMIC | ELSE (R) | |
| ENABLE | ENCLOSED | END | |
| ENGINE | ENGINES | ENUM | |
| ESCAPE | ESCAPED | EVENTS | |
| EXCLUSIVE | EXECUTE | EXISTS | |
| EXPLAIN (R) | EXTRACT | FALSE (R) | |
| FIELDS | FIRST | FIXED | |
| FLOAT (R) | FLUSH | FOR (R) | |
| FORCE (R) | FOREIGN (R) | FORMAT | |
| FROM (R) | FULL | FULLTEXT (R) | |
| FUNCTION | GENERATED (R) | GET_FORMAT | |
| GLOBAL | GRANT (R) | GRANTS | |
| GROUP (R) | GROUP_CONCAT | HASH | |
| HAVING (R) | HIGH_PRIORITY (R) | HOUR | |
| HOUR_MICROSECOND (R) | HOUR_MINUTE (R) | HOUR_SECOND (R) | |
| IDENTIFIED | IF (R) | IGNORE (R) | |
| IN (R) | INDEX (R) | INDEXES | |
| INFILE (R) | INNER (R) | INSERT (R) | |
| INT (R) | INTEGER (R) | INTERVAL (R) | |
| INTO (R) | IS (R) | ISOLATION | |
| JOBS | JOIN (R) | JSON | |
| KEY (R) | KEY_BLOCK_SIZE | KEYS (R) | |
| KILL (R) | LEADING (R) | LEFT (R) | |
| LESS | LEVEL | LIKE (R) | |
| LIMIT (R) | LINES (R) | LOAD (R) | |
| LOCAL | LOCALTIME (R) | LOCALTIMESTAMP (R) | |
| LOCK (R) | LONGBLOB (R) | LONGTEXT (R) | |
| LOW_PRIORITY (R) | MAX | MAX_ROWS | |
| MAXVALUE (R) | MEDIUMBLOB (R) | MEDIUMINT (R) | |
| MEDIUMTEXT (R) | MICROSECOND | MIN | |
| MIN_ROWS | MINUTE | MINUTE_MICROSECOND (R) | |
| MINUTE_SECOND (R) | MIN | MIN_ROWS | |
| MINUTE | MINUTE_MICROSECOND | MINUTE_SECOND | |
| MOD (R) | MODE | MODIRY | |
| MONTH | NAMES | NATIONAL | |
| NATURAL (R) | NO | NO_WRITE_TO_BINLOG (R) | |
| NONE | NOT (R) | NOW | |
| NULL (R) | NUMERIC (R) | NVARCHAR (R) | |
| OFFSET | ON (R) | ONLY | |
| OPTION (R) | OR (R) | ORDER (R) | |
| OUTER (R) | PARTITION (R) | PARTITIONS | |
| PASSWORD | PLUGINS | POSITION | |
| PRECISION (R) | PREPARE | PRIMARY (R) | |
| PRIVILEGES | PROCEDURE (R) | PROCESS | |
| PROCESSLIST | QUARTER | QUERY | |
| QUICK | RANGE (R) | READ (R) | |
| REAL (R) | REDUNDANT | REFERENCES (R) | |
| REGEXP (R) | RENAME (R) | REPEAT (R) | |
| REPEATABLE | REPLACE (R) | RESTRICT (R) | |
| REVERSE | REVOKE (R) | RIGHT (R) | |
| RLIKE (R) | ROLLBACK | ROW | |
| ROW_COUNT | ROW_FORMAT | SCHEMA | |
| SCHEMAS | SECOND | SECOND_MICROSECOND (R) | |
| SELECT (R) | SERIALIZABLE | SESSION | |
| SET (R) | SHARE | SHARED | |
| SHOW (R) | SIGNED | SMALLINT (R) | |
| SNAPSHOT | SOME | SQL_CACHE | |
| SQL_CALC_FOUND_ROWS (R) | SQL_NO_CACHE | START | |
| STARTING (R) | STATS | STATS_BUCKETS | |
| STATS_HISTOGRAMS | STATS_META | STATS_PERSISTENT | |
| STATUS | STORED (R) | SUBDATE | |
| SUBSTR | SUBSTRING | SUM | |
| SUPER | TABLE (R) | TABLES | |
| TERMINATED (R) | TEXT | THAN | |
| THEN (R) | TIDB | TIDB_INLJ | |
| TIDB_SMJ | TIME | TIMESTAMP | |
| TIMESTAMPADD | TIMESTAMPDIFF | TINYBLOB (R) | |
| TINYINT (R) | TINYTEXT (R) | TO (R) | |
| TRAILING (R) | TRANSACTION | TRIGGER (R) | |
| TRIGGERS | TRIM | TRUE (R) | |
| TRUNCATE | UNCOMMITTED | UNION (R) | |
| UNIQUE (R) | UNKNOWN | UNLOCK (R) | |
| UNSIGNED (R) | UPDATE (R) | USE (R) | |
| USER | USING (R) | UTC_DATE (R) | |
| UTC_TIME (R) | UTC_TIMESTAMP (R) | VALUE | |
| VALUES (R) | VARBINARY (R) | VARCHAR (R) | |
| VARIABLES | VIEW | VIRTUAL (R) | |
| WARNINGS | WEEK | WHEN (R) | |
| WHERE (R) | WITH (R) | WRITE (R) | |
| XOR (R) | YEAR | YEAR_MONTH (R) | |
| ZEROFILL (R) |
