(转)mysql创建表时反引号的作用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了(转)mysql创建表时反引号的作用相关的知识,希望对你有一定的参考价值。

(转)mysql创建表时反引号的作用

 试用navicat工具查看现网mysql建表语句时,发现表名和字段名都是反引号引起来的

1
2
3
4
5
6
7
8
9
10
11
CREATE TABLE `tab_notice_title_tv` (
  `i_id` int(11) NOT NULL AUTO_INCREMENT,
  `c_opcom_key` varchar(32) DEFAULT NULL,
  `c_view_type` int(11) DEFAULT ‘1‘ COMMENT ‘平台类型,1:标清,2:高清‘,
  `c_title` varchar(32) DEFAULT NULL,
  `c_status` int(2) DEFAULT ‘0‘,
  `c_creator` varchar(32) DEFAULT ‘‘,
  `c_createtime` varchar(32) DEFAULT NULL,
  `c_deleted` int(2) NOT NULL DEFAULT ‘0‘,
  PRIMARY KEY (`i_id`)
) ENGINE=MyISAM AUTO_INCREMENT=46 DEFAULT CHARSET=gbk;

反引号,一般在ESC键的下方。
它是为了区分MYSQL的保留字与普通字符而引入的符号。
举个例子:SELECT `select` FROM `test` WHERE select=’字段值’
在test表中,有个select字段,如果不用反引号,MYSQL将把select视为保留字而导致出错,所以,有MYSQL保留字作为字段的,必须加上反引号来区分。
引号一般用在字段的值,如果字段值是字符或字符串,则要加引号,如:select=’字段值’
不加反引号建的表不能包含MYSQL保留字,否则出错

 

名字上带反的反引号,这个其实是为了防止 当字段为关键字时,用这个符号就可以不报错了

1
2
3
4
5
6
7
8
9
10
11
CREATE TABLE `zz_files` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `data_id` int(11) DEFAULT NULL,
  `name` varchar(60) COLLATE utf8_unicode_ci DEFAULT NULL,
  `fileurl` varchar(40) COLLATE utf8_unicode_ci DEFAULT NULL,
  `ext` varchar(10) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT ‘扩展名‘,
  `cate` varchar(30) COLLATE utf8_unicode_ci DEFAULT NULL,
  `desc` int(11) DEFAULT NULL,
  `c_time` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

如上对于desc这种关键字,用这个符号就不会出错了 






以上是关于(转)mysql创建表时反引号的作用的主要内容,如果未能解决你的问题,请参考以下文章

mysql 中,创建表时如何定义一个日期类型的字段

为啥这个带有 shebang #!/bin/sh 和 exec python 的片段在 4 个单引号内起作用?

postgreSQL 创建user表时引发的表名大写与双引号问题

Oracle与mysql区别

怎么在mysql的表中插入一条数据

c# mysql想要插入的字符串中有多个单引号时该怎么办?