MySQL中单引号,双引号和反引号的区别
1、首先单引号和反引号,如图,这里的 '图书ID' 就使用到了单引号,而 CREATE TABLE `book` 这里的 book 就使用到了反引号。
2、单引号:在例子中的条件值周围使用的是单引号。SQL 使用单引号来环绕文本值。如果是数值,不要使用引号。
3、反引号:它是为了区分MYSQL的保留字与普通字符而引入的符号。有MYSQL保留字作为字段的,必须加上反引号来区分。
4、双引号的用法和单引号有所类似,大多数数据库都支持单引号和双引号的互换,即varchar类型的变量既可以用单引号来囊括,也可以用双引号。
5、另外,在oracle里面,双引号还有一个意义,那就是保留大小写。在oracle数据库里面,所有的字段是默认为转化成大写后进数据库的,所以如果有一个表名为user,这个时候select * from user;这个语句是查不出任何数据的。
MySQL里引用字符串常量时需要用一对英文单引号“ ' ”或英文双引号“ " ”将字符串常量常量括起来。例如:
'an apple'
"a book"
一般应使用英文单引号,如果字符串内需要包含单引号时,除了使用转义的办法外,我们可以选用一对双引号来包括字符串,这样字符串内的单引号被视作普通字符,无需特殊处理。
例如 Johnson's mother
select "Johnson's mother",'Johnson''s mother','Johnson\'s mother';
与单引号对应,使用英文双引号引用的字符串内需要包含双引号时,除了使用转义的办法外,我们可以用一对单引号来包括字符串,这样字符串内的双引号被视作普通字符,无需特殊处理。
例如 He said: "Go away"
select 'He said: "Go away"' ,"He said: ""Go away""" ,"He said: \"Go away\"" ;
MySQL里使用一对反勾号“ ` ”将识别符括起来,一般情况下可以不用,单是如果识别符出现关键字冲突或标识符的写法可能产生歧义的情况下就必须使用。例如:
create table t1 (id int primary key ,desc varchar(10)); -- 这句会报错
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模式后,运行成功。
广告 您可能关注的内容 |