SQL中的单引号和双引号有区别吗?如果有,是什么?
谢谢!
使用双字符:
插入时 库中
'aa''b''cc' aa'b'cc
"aa"b""cc" aa"b"cc
使用转义字符(\):
插入时 库中
'aa\'b\'cc' aa'b'cc
"aa\"b\"cc" aa"b"cc
在单引号包裹的字符串中使用双引号、在双引号包裹的字符串中使用单引号 不需要使用双引号或转义字符。
插入时 库中
"aa'b'cc" aa'b'cc
'aa"b"cc' aa"b"cc
反引号(“`”)
保留字不能用于表名,比如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')成功
ANSI_QUOTES Treat “"” as an identifier quote character (like the “`”
quote character) and not as a string quote character. You can still
use “`” to quote identifiers with this mode enabled. With ANSI_QUOTES
enabled, you cannot use double quotation marks to quote literal
strings, because it is interpreted as an identifier.
开启ANSI_QUOTES后,双引号将具有反引号类似的功能,不能再像单引号那样工作。
2 回答1.2k 阅读✓ 已解决
3 回答1.1k 阅读
1 回答1.4k 阅读
1 回答992 阅读
在标准 SQL 中,字符串使用的是单引号。
如果字符串本身也包括单引号,则使用两个单引号(注意,不是双引号,字符串中的双引号不需要另外转义)。
你提到的 SQL 中的双引号字符串,应该不是标准 SQL,而是其它的数据库对 SQL 的扩展,比如在 MySQL 中允许使用单引号和双引号两种。
MySQL 参考手册: