試用navicat工具查看現網mysql建表語句時,發現表名和字段名都是反引號引起來的
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保留字,否則出錯
名字上帶反的反引號,這個其實是為了防止 當字段為關鍵字時,用這個符號就可以不報錯了
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這種關鍵字,用這個符號就不會出錯了
參考鏈接
http://blog.163.com/zhu329599788@126/blog/static/66693350201721651918235/