9.3 关键字和保留字


官方文档地址: 9.3 Keywords and Reserved Words


关键字是在SQL中有意义的词。某些关键字(如SELECTDELETEBIGINT)是被保留的(被称为保留字),并且需要特殊处理才能作为表名和列名等标识符。对于内置函数的名称也是这样的。

非保留关键字不使用引号就可以作为标识符。如果按照 9.2 模式对象名称 中描述的方式引用它们,保留关键字也是可以作为标识符的:

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)'

BEGINEND是非保留关键字,因此作为标识符使用时不需要引号。INTERVAL是一个保留关键字,必须用引号括起作为标识符:

mysql> CREATE TABLE `interval` (begin INT, end INT);
Query OK, 0 rows affected (0.01 sec)

例外:限定名中跟在点号后面的单词必须是标识符,所以即使它是保留关键字,也不需要用引号括起来:

mysql> CREATE TABLE mydb.interval (begin INT, end INT);
Query OK, 0 rows affected (0.01 sec)

允许使用内置函数的名称作为标识符,但可能需要小心使用。例如,COUNT可以作为列名。但是,在默认情况下,函数名和后面的(符号之间不允许有空格。这一要求使解析器能够区分该名称是在函数调用中使用还是在非函数上下文中使用。有关函数名识别的更多细节,请参见 9.2.5 函数名称解析和分辨

INFORMATION_SCHEMA.KEYWORDS表列出了 MySQL 定义的关键字,并指出它们是否被保留。参见 26.18 INFORMATION_SCHEMA KEYWORDS 表

MySQL 8.0 关键字和保留字

下面的列表显示了 MySQL 8.0 中的关键字和保留字,以及不同版本对单个字的更改。保留关键字用(R)标记。此外,_FILENAME是保留字。

在某些时候,你可能会升级到更高的版本,因此,查看将来的保留字也是一个好主意。你可以在 MySQL 更高版本的手册中找到这些。标准 SQL 禁止使用列表中的大多数保留字作为列名或表名(例如GROUP)。但有一些是可以使用的,因为 MySQL 使用yacc解析器的时候需要用到它们。

注:关键字有点多,这里就不列出了,可以直接参考当前翻译文档对应的官方文档。

MySQL 8.0 新增关键字和保留字

下面的列表显示了与 MySQL 5.7 相比,在 MySQL 8.0 中添加的关键字和保留字。保留关键字用(R)标记。

注:关键字有点多,这里就不列出了,可以直接参考当前翻译文档对应的官方文档。

MySQL 8.0 删除的关键字和保留字

下面的列表显示了与 MySQL 5.7 相比,在 MySQL 8.0 中删除的关键字和保留字。保留关键字用(R)标记。

  • ANALYSE
  • DES_KEY_FILE
  • MASTER_SERVER_ID
  • PARSE_GCOL_EXPR
  • REDOFILE
  • SQL_CACHE
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值