关键字和保留字
关键字在 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) |
看完两件小事
如果你觉得这篇文章对你挺有启发,我想请你帮我两个小忙:
- 把这篇文章分享给你的朋友 / 交流群,让更多的人看到,一起进步,一起成长!
- 关注公众号 「方志朋」,公众号后台回复「资源」 免费领取我精心整理的前端进阶资源教程