MySQL创建表时,被``和''坑了很久

在使用MySQL创建表的时候,被一个符号坑了无数次,始终找不到原因。之前使用MySQL创建表的时候,都是表名和字段名都是用''(单引号)括起来的,但是每次都报错,不知道是什么原因造成的,今天又碰到了同样的问题,终于找到了错误原因。

 

原来,在创建 MySQL 的表时,表名和字段名外面的符号 ``不是单引号,而是英文输入法状态下的反单引号,也就是键盘左上角 esc 按键下面的那一个 ~ 按键。

 

反引号,一般在ESC键的下方。它是为了区分 MySQL 关键字(保留字)与普通字符而引入的符号,一般的,表名、字段名,库名都使用反引号。

引号一般用于字段的值,如果字段值是字符或字符串,则要加引号。

 

保留字不能用于表名或者字段名,比如desc,此时需要加入反引号来区别,但使用表名时可忽略反引号。

但是如果表名为普通字符,则可以不用加反引号,如下:

那么,如果表名或者字段名为MySQL关键字呢?这个时候就需要加反引号,否则是会报错的。

从上面可以看出,创建表和insert的时候:

如果表名和字段名为MySQL关键字,则需要加反引号``;

如果表名和字段名为MySQL关键字,加单引号报错(英文状态下单引号);

如果表名和字段名为普通字符,则可以不用加反引号。

使用表的时候:

从下面可以看出,使用的时候可以忽略反引号。

我们再来试试使用英文状态下单引号''的情况,可以看出是报错的;

 

 

参考:

https://www.cnblogs.com/phproom/p/9595285.html

https://www.runoob.com/mysql/mysql-create-tables.html

posted @ 2020-05-26 10:49  anna1210  阅读(1670)  评论(0编辑  收藏  举报