一文搞懂mysql单引号,双引号,反引号的使用

1.单引号双引号
在mysql中引用字符串常量时候需要用一对英文单引号或者双引号。在一般使用的时候你会发现单引号和双引号没有什么区别。
但是在转义时,我们会使用到单双引号,例如你要查询的字段里面本身就带有单引号或者双引号时,单双引号就需要注意使用了,比如查询tom’s father,在编辑的时候:
在这里插入图片描述
这样自然就是会报错的,因为你的单引号被认为是没有完全的,报了语法错误。因此这种情况我们就需要双引号:

select "tom's father" from employees;

这样使用了双引号其中的单引号就会被视为普通字符,不用特殊处理。
同样在双引号也是一样的,我就不举例了,单双引好总结为,在需要转义的时候,也就是你查询的字段有单引号或者双引号那就需要使用另外一种来进行转义。
2.反引号
反引号位于esc下方,1前面。它是为了区别mysql保留字和普通字符引入的符号。
在一般情况下不会使用反引号,但是如果识别符穿线关键字冲突或者标识符写法产生歧义的时候就需要用到反引号。
例如:


create table t1 (id int primary key ,desc varchar(10));

这里的desc 没有加上反引号,系统不能判断你这是主键名还是降序排列。这种情况我们就需要使用单引号。


create table t1 (id int primary key,`desc` varchar(10));

以下的反引号用法来自我网上找的资料
如果SQL服务器模式包括ANSI_QUOTES模式选项,还可以用双引号替代反勾号将识别符括起来:

mysql> CREATE TABLE “test” (col INT);
ERROR 1064: You have an error in your SQL syntax. (…)mysql> SET sql_mode=‘ANSI_QUOTES’;mysql> CREATE TABLE “test” (col INT);Query OK,
0 rows affected (0.00 sec)
之前报错,设置SQL服务器模式包括ANSI_QUOTES模式后,运行成功。

举个例子:

SELECT select FROM test WHERE select=‘字段值’
在test表中,有个select字段,如果不用反引号,MYSQL将把select视为保留字而导致出错,所以,有MYSQL保留字作为字段的,必须加上反引号来区分。
另外:建表的时候一般都会将表名,库名都加上反引号来保证语句的执行度。反引号`,数字1左边的符号。
保留字不能用于表名,比如desc,此时需要加入反引号来区别,但使用表名时可忽略反引号。

create table desc报错
create table desc成功
create table test成功
drop table test成功
保留字不能用于字段名,比如desc,此时也需要加入反引号,并且insert等使用时也要加上反引号。

create table testdesc varchar(255))成功
insert into test(desc) values(‘fxf’)失败
insert into test(desc) values(‘fxf’)成功

https://blog.csdn.net/u012060033/article/details/93348261

发布了6 篇原创文章 · 获赞 3 · 访问量 72
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 游动-白 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览