11.3 关键字和保留字
关键字是 SQL 中具有特殊意义的词语。某些关键字,如SELECT、DELETE或BIGINT,是保留的,需要特殊处理以便作为标识符,如表名和列名。对内置函数的名称也可能如此。
非保留关键字可以作为标识符使用,无需引号。保留词语可以作为标识符使用,但需要按照第11.2节,“Schema Object Names”中描述的方式加引号。
mysql> CREATE TABLE interval (begin INT, end INT);
ERROR 1064 (42000): You have an error in your SQL syntax ...
near 'interval (begin INT, end INT)'
BEGIN和END是关键字,但不是保留的,因此它们作为标识符使用不需要加引号。INTERVAL是一个保留关键字,必须被加引号以便作为标识符:
mysql> CREATE TABLE `interval` (begin INT, end INT);
Query OK, 0 rows affected (0.01 sec)
例外:在qualified name中,如果一个词语跟随一个点,则它必须是标识符,因此即使它是保留的,也不需要加引号:
mysql> CREATE TABLE mydb.interval (begin INT, end INT);
Query OK, 0 rows affected (0.01 sec)
内置函数的名称可以用作标识符,但需要小心使用。例如,COUNT 可以作为列名。但是,默认情况下,不允许在函数调用中出现空格,这样可以使解析器区分函数调用和非函数上下文。关于函数名称识别的详细信息,请见第11.2.5节,“Function Name Parsing and Resolution”。
MySQL中的INFORMATION_SCHEMA.KEYWORDS表列出了MySQL中被认为是关键字的单词,并且指示它们是否保留。见第28.3.17节,“The INFORMATION_SCHEMA KEYWORDS Table”。
MySQL 8.4 关键字和保留字
以下列表显示了 MySQL 8.4 中的关键字和保留字,以及从版本到版本的变化。保留关键字以(R)标记。此外,_FILENAME 也被保留。
在某个时候,您可能会升级到更高版本,因此查看未来的保留字也是一个好主意。您可以在涵盖 MySQL 高版本的手册中找到这些保留字。大多数列表中的保留字在标准 SQL 中被禁止用作列或表名(例如,GROUP)。少数是因为 MySQL 需要它们,并使用一个yacc解析器。
A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z
-
ACCESSIBLE(R) -
ACCOUNT -
ACTION -
ACTIVE -
ADD(R) -
ADMIN -
AFTER -
AGAINST -
AGGREGATE -
ALGORITHM -
ALL(R) -
ALTER(R) -
ALWAYS -
ANALYZE(R) -
AND(R) -
ANY -
ARRAY -
AS(R) -
ASC(R) -
ASCII -
ASENSITIVE(R) -
AT -
ATTRIBUTE -
AUTHENTICATION -
AUTO -
AUTOEXTEND_SIZE -
AUTO_INCREMENT -
AVG -
AVG_ROW_LENGTH
B
-
BACKUP -
BEFORE(R) -
BEGIN -
BERNOULLI -
BETWEEN(R) -
BIGINT(R) -
BINARY(R) -
BINLOG -
BIT -
BLOB(R) -
块 -
布尔值 -
布尔类型 -
双方(R) -
BTREE -
桶数 -
批量 -
BY(R) -
字节
-
缓存 -
调用(R) -
级联(R) -
级联后的 -
switch(R) -
目录名称 -
链式 -
挑战响应 -
更改(R) -
已更改 -
通道 -
字符(R) -
字符类型(R) -
字符集 -
检查(R) -
校验和 -
加密 -
类别起源 -
客户端 -
克隆 -
关闭 -
COALESCE -
代码 -
排序(R) -
排序规则 -
列(R) -
COLUMNS -
COLUMN_FORMAT -
COLUMN_NAME -
COMMENT -
COMMIT -
COMMITTED -
COMPACT -
COMPLETION -
COMPONENT -
COMPRESSED -
COMPRESSION -
CONCURRENT -
CONDITION(R) -
CONNECTION -
CONSISTENT -
CONSTRAINT(R) -
CONSTRAINT_CATALOG -
CONSTRAINT_NAME -
CONSTRAINT_SCHEMA -
CONTAINS -
CONTEXT -
CONTINUE(R) -
CONVERT(R) -
CPU -
CREATE(R) -
CROSS(R) -
CUBE(R) -
CUME_DIST(R) -
CURRENT -
CURRENT_DATE(R) -
CURRENT_TIME(R) -
CURRENT_TIMESTAMP(R) -
CURRENT_USER(R) -
CURSOR(R) -
CURSOR_NAME
-
数据 -
数据库(R) -
数据库列表(R) -
数据文件 -
日期 -
日期时间 -
日 -
日小时(R) -
日微秒(R) -
日分钟(R) -
日秒(R) -
释放 -
十进制(R) -
小数(R) -
声明(R) -
默认值(R) -
默认身份验证 -
定义者 -
定义 -
延迟(R) -
延迟键写入 -
删除(R) -
密集排名(R) -
降序(R) -
描述(R) -
描述信息 -
确定性(R) -
诊断信息 -
目录 -
禁用 -
弃用 -
磁盘 -
distinct(R) -
distinctrow(R) -
DIV(R) -
DO -
DOUBLE(R) -
DROP(R) -
DUAL(R) -
DUMPFILE -
DUPLICATE -
DYNAMIC
-
EACH(R) -
ELSE(R) -
ELSEIF(R) -
EMPTY(R) -
ENABLE -
ENCLOSED(R) -
ENCRYPTION -
END -
ENDS -
ENFORCED -
ENGINE -
ENGINES -
ENGINE_ATTRIBUTE -
ENUM -
ERROR -
ERRORS -
ESCAPE -
ESCAPED(R) -
EVENT -
EVENTS -
EVERY -
EXCEPT(R) -
EXCHANGE -
EXCLUDE -
EXECUTE -
EXISTS(R) -
EXIT(R) -
EXPANSION -
EXPIRE -
EXPLAIN(R) -
EXPORT -
EXTENDED -
EXTENT_SIZE
-
FACTOR -
FAILED_LOGIN_ATTEMPTS -
FALSE(R) -
FAST -
FAULTS -
FETCH(R) -
FIELDS -
FILE -
FILE_BLOCK_SIZE -
FILTER -
FINISH -
FIRST -
FIRST_VALUE(R) -
FIXED -
FLOAT(R) -
FLOAT4(R) -
FLOAT8(R) -
FLUSH -
FOLLOWING -
FOLLOWS -
FOR(R) -
FORCE(R) -
FOREIGN(R) -
FORMAT -
FOUND -
FROM(R) -
FULL -
FULLTEXT(R) -
FUNCTION(R)
-
GENERAL -
GENERATE -
GENERATED(R) -
GEOMCOLLECTION -
GEOMETRY -
GEOMETRYCOLLECTION -
GET(R) -
GET_FORMAT -
GET_SOURCE_PUBLIC_KEY -
GLOBAL -
GRANT(R) -
GRANTS -
GROUP(R) -
GROUPING(R) -
GROUPS(R) -
GROUP_REPLICATION -
GTIDS -
GTID_ONLY
-
HANDLER -
HASH -
HAVING(R) -
HELP -
HIGH_PRIORITY(R) -
HISTOGRAM -
HISTORY -
HOST -
HOSTS -
HOUR -
HOUR_MICROSECOND(R) -
HOUR_MINUTE(R) -
HOUR_SECOND(R)
-
IDENTIFIED -
IF(R) -
忽略(R) -
忽略服务器ID -
导入 -
在(R) -
不活动 -
索引(R) -
索引列表 -
输入文件(R) -
初始 -
初始大小 -
初始化 -
内联(R) -
输入输出(R) -
不敏感(R) -
插入(R) -
插入方法 -
安装 -
实例 -
整数(R) -
整数1(R) -
整数2(R) -
整数3(R) -
整数4(R) -
整数8(R) -
整形(R) -
交集(R) -
时间间隔(R) -
到(R) -
不可见 -
调用者 -
IO -
IO_后gtids(R) -
IO_前gtids(R) -
IO线程 -
IPC -
是(R) -
隔离 -
颁发者 -
迭代(R)
-
连接(R) -
JSON -
JSON_表(R) -
JSON_值
-
关键字(R) -
密钥ring -
密钥(R) -
KEY_ BLOCK_SIZE -
kill(R)
-
滞后(R) -
语言 -
最后 -
最后值(R) -
侧向(R) -
领先(R) -
离开(R) -
离开的 -
左(R) -
少于 -
层次 -
类似(R) -
限制(R) -
线性(R) -
行(R) -
线 -
列表 -
装载(R) -
本地 -
本地时间(R) -
LOCALTIME(R) -
LOCALTIMESTAMP(R) -
LOCK(R) -
LOCKED -
LOCKS -
LOG -
LOGFILE -
LOGS -
LONG(R) -
LONGBLOB(R) -
LONGTEXT(R) -
LOOP(R) -
LOW_PRIORITY(R)
-
MANUAL(R) -
MASTER -
MATCH(R) -
MAXVALUE(R) -
MAX_CONNECTIONS_PER_HOUR -
MAX_QUERIES_PER_HOUR -
MAX_ROWS -
MAX_SIZE -
MAX_UPDATES_PER_HOUR -
MAX_USER_CONNECTIONS -
MEDIUM -
MEDIUMBLOB(R) -
MEDIUMINT(R) -
MEDIUMTEXT(R) -
MEMBER -
MEMORY -
MERGE -
MESSAGE_TEXT -
MICROSECOND -
MIDDLEINT(R) -
MIGRATE -
MINUTE -
MINUTE_ MICROSECOND(R) -
MINUTE_SECOND(R) -
MIN_ROWS -
MOD(R) -
MODE -
MODIFIES(R) -
MODIFY -
MONTH -
MULTILINESTRING -
MULTIPOINT -
MULTIPOLYGON -
MUTEX -
MYSQL_ERRNO
-
NAME -
NAMES -
NATIONAL -
NATURAL(R) -
NCHAR -
NDB -
NDBCLUSTER -
NESTED -
NETWORK_NAMESPACE -
NEVER -
NEW -
NEXT -
NO -
NODEGROUP -
NONE -
NOT(R) -
NOWAIT -
NO_WAIT -
NO_WRITE_TO_BINLOG(R) -
NTH_VALUE(R) -
NTILE(R) -
NULL(R) -
NULLS -
NUMBER -
NUMERIC(R) -
NVARCHAR
-
OF(R) -
OFF -
OFFSET -
OJ -
OLD -
ON(R) -
ONE -
ONLY -
OPEN -
OPTIMIZE(R) -
OPTIMIZER_COSTS(R) -
OPTION(R) -
OPTIONAL -
OPTIONALLY(R) -
OPTIONS -
OR(R) -
ORDER(R) -
ORDINALITY -
ORGANIZATION -
OTHERS -
OUT(R) -
OUTER(R) -
OUTFILE(R) -
OVER(R) -
OWNER
-
PACK_KEYS -
PAGE -
PARALLEL(R) -
PARSER -
PARSE_TREE -
PARTIAL -
分区(R) -
分区ing -
分区s -
密码 -
密码锁定时间 -
路径 -
百分比排名(R) -
持久 -
持久只读 -
阶段 -
插件 -
插件s -
插件目录 -
点 -
多边形 -
端口 -
前置 -
前置的 -
精度(R) -
准备 -
保留 -
前一个 -
主键(R) -
权限 -
用户权限检查 -
存储过程(R) -
进程 -
进程列表 -
配置文件 -
配置文件s -
代理 -
清除(R)
-
限定(R) -
季度 -
查询 -
QUICK
-
RANDOM -
RANGE(R) -
RANK(R) -
READ(R) -
READS(R) -
READ_ONLY -
READ_WRITE(R) -
REAL(R) -
REBUILD -
RECOVER -
RECURSIVE(R) -
REDO_BUFFER_SIZE -
REDUNDANT -
REFERENCE -
REFERENCES(R) -
REGEXP(R) -
REGISTRATION -
RELAY -
RELAYLOG -
RELAY_LOG_FILE -
RELAY_LOG_POS -
RELAY_THREAD -
RELEASE(R) -
RELOAD -
REMOVE -
RENAME(R) -
REORGANIZE -
REPAIR -
REPEAT(R) -
REPEATABLE -
REPLACE(R) -
REPLICA -
REPLICAS -
REPLICATE_DO_DB -
REPLICATE_DO_TABLE -
REPLICATE_IGNORE_DB -
REPLICATE_IGNORE_TABLE -
REPLICATE_REWRITE_DB -
REPLICATE_WILD_DO_TABLE -
REPLICATE_WILD_IGNORE_TABLE -
REPLICATION -
REQUIRE(R) -
REQUIRE_ROW_FORMAT -
RESET -
RESIGNAL(R) -
RESOURCE -
RESPECT -
RESTART -
RESTORE -
RESTRICT(R) -
RESUME -
RETAIN -
RETURN(R) -
RETURNED_SQLSTATE -
RETURNING -
RETURNS -
REUSE -
REVERSE -
REVOKE(R) -
RIGHT(R) -
RLIKE(R) -
ROLE -
ROLLBACK -
ROLLUP -
ROTATE -
ROUTINE -
ROW(R) -
ROWS(R) -
ROW_COUNT -
ROW_FORMAT -
ROW_NUMBER(R) -
RTREE
-
S3 -
SAVEPOINT -
SCHEDULE -
SCHEMA(R) -
SCHEMAS(R) -
SCHEMA_NAME -
SECOND -
SECONDARY -
SECONDARY_ENGINE -
SECONDARY_ENGINE_ATTRIBUTE -
SECONDARY_LOAD -
SECONDARY_UNLOAD -
SECOND_MICROSECOND(R) -
SECURITY -
SELECT(R) -
SENSITIVE(R) -
SEPARATOR(R) -
SERIAL -
SERIALIZABLE -
SERVER -
SESSION -
SET(R) -
SHARE -
SHOW(R) -
SHUTDOWN -
SIGNAL(R) -
SIGNED -
SIMPLE -
SKIP -
SLAVE -
慢速 -
小整数(R) -
快照 -
套接字 -
一些 -
库文件名 -
相似 -
来源 -
自动定位 -
绑定 -
压缩算法 -
连接重试 -
延迟 -
心跳周期 -
主机 -
日志文件 -
日志位置 -
密码 -
端口 -
公钥路径 -
重试次数 -
SSL -
证书认证机构 -
证书路径 -
证书文件 -
加密算法 -
CRL -
CRL路径 -
私钥 -
验证服务器证书 -
TLS加密套件 -
TLS版本 -
用户名 -
SOURCE_ZSTD_COMPRESSION_LEVEL -
SPATIAL(R) -
SPECIFIC(R) -
SQL(R) -
SQLEXCEPTION(R) -
SQLSTATE(R) -
SQLWARNING(R) -
SQL_AFTER_GTIDS -
SQL_AFTER_MTS_GAPS -
SQL_BEFORE_GTIDS -
SQL_BIG_RESULT(R) -
SQL_BUFFER_RESULT -
SQL_CALC_FOUND_ROWS(R) -
SQL_NO_CACHE -
SQL_SMALL_RESULT(R) -
SQL_THREAD -
SQL_TSI_DAY -
SQL_TSI_HOUR -
SQL_TSI_MINUTE -
SQL_TSI_MONTH -
SQL_TSI_QUARTER -
SQL_TSI_SECOND -
SQL_TSI_WEEK -
SQL_TSI_YEAR -
SRID -
SSL(R) -
STACKED -
START -
STARTING(R) -
STARTS -
STATS_AUTO_RECALC -
STATS_PERSISTENT -
STATS_SAMPLE_PAGES -
状态 -
停止 -
存储 -
已存储(R) -
直连连接(R) -
流 -
字符串 -
子类起源 -
主题 -
子分区 -
子分区数 -
超级 -
暂停 -
交换 -
切换 -
系统(R)
-
表(R) -
表格 -
表样本(R) -
表空间 -
表检查和 -
表名 -
临时 -
临时表 -
终止(R) -
文本 -
然后 -
然后(R) -
线程优先级 -
同等 -
时间 -
时间戳 -
时间戳添加 -
时间戳差异 -
TinyBlob(R) -
TINYINT(R) -
TINYTEXT(R) -
TLS -
TO(R) -
TRAILING(R) -
TRANSACTION -
TRIGGER(R) -
TRIGGERS -
TRUE(R) -
TRUNCATE -
TYPE -
TYPES
-
UNBOUNDED -
UNCOMMITTED -
UNDEFINED -
UNDO(R) -
UNDOFILE -
UNDO_BUFFER_SIZE -
UNICODE -
UNINSTALL -
UNION(R) -
UNIQUE(R) -
UNKNOWN -
UNLOCK(R) -
UNREGISTER -
UNSIGNED(R) -
UNTIL -
UPDATE(R) -
UPGRADE -
URL -
USAGE(R) -
USE(R) -
USER -
USER_RESOURCES -
USE_ FRM -
USING(R) -
UTC_DATE(R) -
UTC_TIME(R) -
UTC_TIMESTAMP(R)
-
VALIDATION -
VALUE -
VALUES(R) -
VARBINARY(R) -
VARCHAR(R) -
VARCHARACTER(R) -
VARIABLES -
VARYING(R) -
VCPU -
VIEW -
VIRTUAL(R) -
VISIBLE
-
WAIT -
WARNINGS -
WEEK -
WEIGHT_STRING -
WHEN(R) -
WHERE(R) -
WHILE(R) -
WINDOW(R) -
WITH(R) -
WITHOUT -
WORK -
WRAPPER -
WRITE(R)
-
X509 -
XA -
XID -
XML -
XOR(R)
-
YEAR -
YEAR_MONTH(R)
-
ZEROFILL(R) -
ZONE
MySQL 8.4 新关键字和保留字
以下列表显示了 MySQL 8.4 中添加的关键字和保留字,相比 MySQL 8.3。保留关键字以 (R) 标记。
A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | Z
-
ACTIVE -
ADMIN -
ARRAY -
ATTRIBUTE -
AUTHENTICATION -
AUTO
-
BERNOULLI -
BUCKETS -
BULK
-
CHALLENGE_RESPONSE -
CLONE -
COMPONENT -
CUME_DIST(R)
-
DEFINITION -
DENSE_RANK(R) -
DESCRIPTION
-
EMPTY(R) -
ENFORCED -
ENGINE_ATTRIBUTE -
EXCEPT(R) -
EXCLUDE
-
FACTOR -
FAILED_LOGIN_ATTEMPTS -
FINISH -
FIRST_VALUE(R) -
FOLLOWING
-
GENERATE -
GEOMCOLLECTION -
GET_SOURCE_PUBLIC_KEY -
GROUPING(R) -
GROUPS(R) -
GTIDS -
GTID_ONLY
-
HISTOGRAM -
HISTORY
-
INACTIVE -
INITIAL -
INITIATE -
INTERSECT(R) -
INVISIBLE
-
JSON_ TABLE(R) -
JSON_VALUE
-
KEYRING
-
LAG(R) -
LAST_VALUE(R) -
LATERAL(R) -
LEAD(R) -
LOCKED -
LOG
-
MANUAL(R) -
MEMBER
-
NESTED -
NETWORK_NAMESPACE -
NOWAIT -
NTH_VALUE(R) -
NTILE(R) -
NULLS
-
OF(R) -
OFF -
OJ -
OLD -
OPTIONAL -
ORDINALITY -
ORGANIZATION -
OTHERS -
OVER(R)
-
并行(R) -
解析树 -
密码锁定时间 -
路径 -
百分比排名(R) -
持久 -
仅持久 -
前置 -
权限检查用户 -
进程
-
限定(R)
-
随机 -
排名(R) -
递归(R) -
参考 -
注册 -
副本 -
副本列表 -
要求行格式 -
资源 -
尊重 -
重新启动 -
保留 -
返回 -
重用 -
角色 -
行号(R)
-
S3 -
副本引擎 -
副本引擎属性 -
SECONDARY_ENGINE_ATTRIBUTE -
SECONDARY_LOAD -
SECONDARY_UNLOAD -
跳过 -
源自动定位 -
源绑定 -
源压缩算法 -
源连接重试 -
源延迟 -
源心跳周期 -
源主机 -
源日志文件 -
源日志位置 -
源密码 -
源端口 -
源公钥路径 -
源重试次数 -
源SSL -
源SSL证书 -
源SSL证书路径 -
源SSL密钥 -
源SSL加密方式 -
源SSL CRL -
源SSL CRL路径 -
源SSL密钥 -
源SSL验证服务器证书 -
源TLS加密套件 -
源TLS版本 -
源用户 -
源ZSTD压缩级别 -
空间参考坐标系ID -
流 -
系统(R)
-
TABLESAMPLE(R) -
THREAD_PRIORITY -
TIES -
TLS
-
UNBOUNDED -
UNREGISTER -
URL
-
VCPU -
VISIBLE
-
WINDOW(R)
-
ZONE
MySQL 8.4 移除关键字和保留字
以下列表显示了 MySQL 8.4 中移除的关键字和保留字,相比 MySQL 8.3。保留关键字以 (R) 标记。
-
ANALYSE
-
DES_KEY_FILE
-
MASTER_AUTO_POSITION -
MASTER_BIND(R) -
MASTER_CONNECT_RETRY -
MASTER_DELAY -
MASTER_HEARTBEAT_PERIOD -
MASTER_HOST -
MASTER_LOG_FILE -
MASTER_LOG_POS -
MASTER_PASSWORD -
MASTER_PORT -
MASTER_RETRY_COUNT -
MASTER_SERVER_ID -
MASTER_SSL -
MASTER_SSL_CA -
MASTER_SSL_CAPATH -
MASTER_SSL_CERT -
MASTER_SSL_CIPHER -
MASTER_SSL_CRL -
MASTER_SSL_CRLPATH -
MASTER_SSL_KEY -
MASTER_SSL_VERIFY_SERVER_CERT(R) -
MASTER_TLS_VERSION -
MASTER_USER
-
PARSE_GCOL_EXPR
-
REDOFILE
-
SQL_CACHE