SQL查询语句中单引号和双引号的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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,对这点不大明白,请高手不惜赐教。

是这样的在SQL里字符型只能用单引号,双引号是引用的链接数据库的程序里的,如果要用双引号,在SQL里要加个',要是要加单引号也一样前面加个'所以就变成''',''了 参考技术A sql查询语句中的单引号和双引号可用于引用"字符串"常量,加号可作为算数"加法"运算符或做"连接符"使用,但是它们应用于不同的数据库时还存在着不少差异,大家需要留意。
例如access数据库和mysql数据库都支持用单引号或双引号引用字串常量,而mssql数据库则只支持用单引号引用字串常量。
又比如access数据库和mssql数据库支持+号即可作为加法运算符也可以作为连接运算符使用,而mysql数据库则只支持+号做加法运算,它不支持做连接符使用,如需实施字串连接必须使用concat函数。
例如:
1)select
*
from
t1
where
col1='abc';
2)select
*
from
t1
where
col1="abc";
语句1和2对于access数据库和mysql数据库都是合法的。mssql则只有语句1合法,语句2会报错。
3)select
col1
+
col2
from
t1;
语句3对于对于access和mssql数据库来说,如果两个字段都是数字类型的话,数据库引擎会做加法运算,否则会将做连接符使用合并两字段的值;而mysql只会对加号做算数加法运行,如需连接多个字段值则须要使用concat函数,例如语句4
4)select
concat(col1
,col2)
from
t1;
参考技术B SQL例句:
insert into Users (id,name)values(5,'张三')
其中id列是int类型,不用加上‘’。
而name是 varchar(类似C#中的string)所以要加上‘’。
C#中的字符串与变量的连接:
string Name = "张三";
string say = "hello "+ Name +",Welcome!";
我们替换上句中的第一个字符串和最后一个字符串。
用 insert into Users (id,name,email)values(5,' 替换 hello
用 ') 替换 ,Welcome!
那就是:"insert into Users (id,name)values(5,'"+ Name +"')";
其实语句这样写并不好。
用这样的方式:
int id = 5;
string Name = "张三";
string.Format("insert into Users (id,name)values(0,'1');",id,Name);
需记,values()里面的列如果是int就x,如果是string(varchar)就用'x'
x表示索引,从0开始。后面的参数依次代表里面的值。这里id就是0的值,也是就5。Name就是1的值,也就是张三。

Java中单双引号的意义

比如说我原先想输出的是输出数字+八个空字符
结果不小心写成了System.out.println(3+'\t');
然后就输出了12;
为什么会得出12这个数字呢?

\t 是转义字符
输出12 是由于一些列运算得出来的。
主要原因是asscll码影响的。
如果没记错 转义字符对应的是asscll码
例如英文字母对照Asscll

在ASCII码中,小写字母是对应的大写字母+32,比如小写字母'a'的ASCII码为'97'那么对应的大写字母就是97-32=65,你这到题目中已知小写字母'g'的ASCII码为103,那么对应的大写字母G的ASCII码为103-32=71,在按照字母表的顺序'L'在'G'的后面第5个字母的位置,那么就在用71+5,结果为76就是你所求的字母'L'的ASCII码.
程序中出现的"---"可以按照原样输出,并没有特殊的含义,一般在熟悉ASCII码的同时,也要了解一下转义字符,转义字符就是以'\'形式出现的字符,往往有些特殊的含义,常见的有'\n','\t','b'等等,楼主好好看看这些部分还是很有用的,都是基础!希望解答对你有所帮助
参考技术A 单引号是char类型,char类型和整型数字3相加时会默认把char转换为整型,'\t'在ascll码是9,所以相加得到12。
这里应该使用双引号,表示是String本回答被提问者采纳
参考技术B 单引号通常表示char类型(当然当嵌套除外),双引号表示的是字符串,你这里用使用整型和单引号相加,java虚拟机默认给你将字符型转换成ASCII码对应的值了,所以结果是个整型,想要输出字符创的话就需要用双引号 参考技术C

8 可以使用 String.format("%8s","");


单引号是char,char可以看成无符号整数。

System.out.printf("%d%8s", 3, "");

以上是关于SQL查询语句中单引号和双引号的问题的主要内容,如果未能解决你的问题,请参考以下文章

PHP和sql语句中单引号和双引号的区别

sql注入过程中单引号和多个关键字被过滤怎么办?

asp中sql语句中啥时候加单引号,啥时候加双引号

数据库插入语句单引号和双引号区别

sql语句中双引号添加的问题

sql中单引号跟双引号有啥区别?分别用于啥情况?