是这样的在SQL里字符型只能用单引号,双引号是引用的链接数据库的程序里的,如果要用双引号,在SQL里要加个',要是要加单引号也一样前面加个'所以就变成''',''了
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;
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}的值,也就是张三。