在MySQL语句中我们有时候经常会看到反引号(``),刚开始的时候不知道什么意思,新手很容易将文档中的反引号看成单引号,我们写sql语句的时候,不加反引号也可以执行成功啊,那么,反引号到底起什么作用? 例: Select * from `member` order by posts desc limit 0,10; 它是为了区分MYSQL的保留字与普通字符而引入的符号。 举个例子:SELECT `select` FROM `test` WHERE select='字段值' 在test表中,有个select字段,如果不用反引号,MYSQL将把select视为保留字而导致出错,所以,有MYSQL保留字作为字段的,必须加上反引号来区分。 引号一般用在字段的值,如果字段值是字符或字符串,则要加引号,如:select='字段值' 不加反引号建的表不能包含MYSQL保留字,否则出错 反引号`:数字1左边的符号。 保留字不能用于表名,比如desc,此时需要加入反引号来区别,但使用表名时可忽略反引号。 create table desc报错 create table `desc`成功 create table `test`成功 drop table test成功 保留字不能用于字段名,比如desc,此时也需要加入反引号,并且insert等使用时也要加上反引号。 create table `test`(`desc` varchar(255))成功 insert into test(desc) values('fxf')失败 insert into test(`desc`) values('fxf')成功 mysql常见的保留字 使用mysql时一定要注意,不要使用它的保留字作为表名或者列名,否则会出现莫名其妙的错误。 昨天建了一个表,其中一列名为interval(时间间隔),结果数据死都插不进去,最后才发现原来interval是mysql的保留字。 以后出现类似的错误要先想想是不是因为表名或列名冲突造成的啊。 从网上找了一个mysql的保留字列表,仅供参考。 注:MySQL允许部分关键字用做未引起来的识别符,因为许多人以前曾使用过它们。如:ACTION、BIT、DATE、ENUM、NO、TEXT、TIME、TIMESTAMP 所以为了安全起见可以在表名和字段名上都加上``。
|