关键字VS保留字
最近经常看到同事的建表语句有很多问题,其中有个问题就是字段的命名问题。所以特意去查了下Mysql中的关键字和保留字的相关知识1,这里分享一下。
有一点大家应该都很清楚,就是SQL和编程语言一样,是有关键字的。但是我们所理解的关键字在SQL中分为两类:
关键字
这类字在Mysql中具有特殊含义,例如常见的alter、static、cache。虽然具有特殊含义,但是还是可以作为Mysql中的标识符来使用的。例如你创建一个表名为static的表并没有什么问题,但是在实际中不推荐这么做。保留字
这类字在Mysql中就比较强势了。保留字,顾名思义,就是Mysql自身保留的标识符。一般情况下是不允许使用的,例如select、insert等。但是有两种例外的情况:- 加反引号,即可当做正常的标识符使用
- 接在另一个合法的标识符后面,例如你创建一个mydb.insert表,就是没有问题的。
不过话说回来,谁会这么做呢?
Mysql命名建议
- 用英文,如果不知道怎么表述,就去google,千万不要用汉语拼音将就;
- 不要使用关键字、更不要使用保留字;
- 尽量使用统一的前缀,程序员就应该有点强迫症,不是么?