8.0官方文档: https://dev.mysql.com/doc/refman/8.0/en/information-schema-keywords-table.html


mysql> \s
--------------
mysql Ver 8.0.19 for linux-glibc2.12 on x86_64 (MySQL Community Server - GPL)



查看有多少关键字:
mysql> SELECT count(*) FROM INFORMATION_SCHEMA.KEYWORDS;
+----------+
| count(*) |
+----------+
| 697 |
+----------+


查看明细
SELECT * FROM INFORMATION_SCHEMA.KEYWORDS; 这里列出的都是关键字,但是在使用上还有点小的区别的。


保留字:
SELECT * FROM INFORMATION_SCHEMA.KEYWORDS where RESERVED=1; 【必须加反引号才能用作标识符】


非保留字:
SELECT * FROM INFORMATION_SCHEMA.KEYWORDS where RESERVED=0; 【不用加反引号就可以用作标识符】


示例:

  -- YEAR是非保留字
mysql> create table efddf333 (a int , YEAR int);
Query OK, 0 rows affected (0.01 sec)

-- XOR是保留字
mysql> create table sbt1 (a int , XOR int);
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'XOR int)' at line 1

mysql> create table sbt1 (a int , `XOR` int);
Query OK, 0 rows affected (0.02 sec)


在建表语句中,上述的这些关键字都是不建议使用的,为了避免引起歧义。


TIPS:  

MySQL 8.0 Keywords and Reserved Words: https://dev.mysql.com/doc/refman/8.0/en/keywords.html