MySQL中单引号,双引号和反引号的区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL中单引号,双引号和反引号的区别相关的知识,希望对你有一定的参考价值。
1、首先单引号和反引号,如图,这里的 '图书ID' 就使用到了单引号,而 CREATE TABLE `book` 这里的 book 就使用到了反引号。
2、单引号:在例子中的条件值周围使用的是单引号。SQL 使用单引号来环绕文本值。如果是数值,不要使用引号。
3、反引号:它是为了区分mysql的保留字与普通字符而引入的符号。有MYSQL保留字作为字段的,必须加上反引号来区分。
4、双引号的用法和单引号有所类似,大多数数据库都支持单引号和双引号的互换,即varchar类型的变量既可以用单引号来囊括,也可以用双引号。
5、另外,在oracle里面,双引号还有一个意义,那就是保留大小写。在oracle数据库里面,所有的字段是默认为转化成大写后进数据库的,所以如果有一个表名为user,这个时候select * from user;这个语句是查不出任何数据的。
参考技术AMySQL里引用字符串常量时需要用一对英文单引号“ ' ”或英文双引号“ " ”将字符串常量常量括起来。例如:
'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模式后,运行成功。
SQL查询语句中单引号和双引号的问题
sql="select * from table1 where user1='"&request.form("names")&"' and userid="request.querystring("id")"" 上面这一句中 '"&request.form("names")&"' 表示的是文本字段, "request.querystring("id")" 表示的是自动编号字段,我的疑惑是 双引号已经标示是字符串了,那么&request.form("names")&加上双引号就行了,为什么双引号外还要再加上单引号?request.querystring("id")对应的是自动编号还要加上双引号? 我以前学的是JS,对这点不大明白,请高手不惜赐教。
参考技术A 是这样的在SQL里字符型只能用单引号,双引号是引用的链接数据库的程序里的,如果要用双引号,在SQL里要加个',要是要加单引号也一样前面加个'所以就变成''',''了以上是关于MySQL中单引号,双引号和反引号的区别的主要内容,如果未能解决你的问题,请参考以下文章