sql单引号的转义
⑴ sql语句中有单引号怎么办
如果插入的数据中包含单引号,就需要处理,用户可以将单引号替换成两个单引号,在sql
中连续两个单引号就表示一个单引号字符,例如:
insert into yourTable(f1,f2) values(100,'ab''c')表示插入
新记录f2字段为ab'c
使用函数replace可以实现这个功能:
replace(yourStr,"'","''")
在.NET里面,就要先检测输入的数据中有没有单引号了,如果有,就要自动设置将一个单引号改为两个单引号。
(1)sql单引号的转义扩展阅读:
sql语句举例:
sql="select * from 数据表 where字段名in ('值1','值2','值3')"
sql="select * from 数据表 where 字段名 between 值1 and 值2"
sql="update 数据表 set字段名=字段值 where 条件表达式"
sql="delete from 数据表 where 条件表达式"
sql="delete from 数据表" (将数据表所有记录删除)
⑵ SQL语言中的单引号与双引号区别
SQL语句中的单引号与双引号区别和应用
1 连接字符&号:ASP中&号的主要作用是用来连接的,包括:字符串-字符串、字符串-变量、变量-变量等混合连接。
2 单引号':正如学习语文课一样,继续放在双引号中的引号可以采用单引号。
3 双引号"" :ASP中处在双引号中的可以是任意的字符、字符串,HTML代码。
例子:
v代表变量
V对于数字 例子:var1.asp
qSQL=“select * from 股票行情表 where 收盘价>”&V
V对于字符串 例子:var2.asp
qSQL=“select * from 股票行情表 where 股票代号=‘”&V&”’”
V对于日期时间 例子:var3.asp
qSQL=“select * from 买卖记录 where 买卖日期=#”&V&”#”
单引号与双引号的区别:
双引号里面的字段会经过编译器解释,然后再当作HTML代码输出;单引号里面的不需要解释,直接输出。也就是说双引号中的变量会被解析,单引号里的变量不会被解析。
查询语句中的字段如果是文本型就要用单引号,数字型(整型)的才不要单引号,简言之,一个SQL查询语句用双引号括起来,里面的SQL语句中的字符变量用单引号括起来。而Dreamweaver UltraDev 4软件中自动生成的语句默认都是数字型的,所以会出现错误号0x80040E10的提示。
首先要知道,引号是成对出现的.这个就和语文中学到的一样.引号里面的是一段字符串,我们把这段看成一个整体.引号外面的是变量,这个也看成一个整体,而变量也必须是在引号外面的,&是连接符,是用来连接两个整体的
有时候单引号括起来是字符,Sql中 单引号也做转义字符
双引号是字符串,char和string
……………………………………………………………………
在SQL语句 双引号,单引号连用怎么理解,???
StrSql="select * from usersheet where loginname=' "+Login1.UserName+" ' and userpass=' "+Login1.PassWord+" ' "
就谈下边的这个例子把
问题补充:' "+Login1.UserName+" '
这个里边的单双引号怎么解释 还有+号 !!
提问者: netswords - 助理 二级
最佳答案
loginname 指的就是一个变量名<与数据库里的字段匹配>,
而' "+Login1.UserName+" ' 就是你输入的值,
假如只有单引号,系统会认为变量就是Login1.UserName,
而这个值是固定的,然而我们需要的是一个变量,所以就得再加一个双引号,
至于 ‘+’ 就是连接字符串的意思、、
***************8上面的是网上的解释 ************
**************8下面是我的程序**********************
strSQL1 = "select * from design where "+rbtnField.SelectedValue+" like '%李大线%' ";
strSQL2 = "select * from design where result like '%李大线%' ";
strSQL1 显示的 结果 select * from design where result like '%李大线%'
strSQL1 显示的 结果 select * from design where result like '%李大线%'
上面这两句话这个时候完全相同 ,可以实现查询。
如果是下面的情况就不一样了~~~
strSQL1 = "select * from design where ' "+rbtnField.SelectedValue+" ' like '%李大线%' ";
strSQL2 = "select * from design where result like '%李大线%' ";
strSQL1 显示的 结果 select * from design where 'result' like '%李大线%'
strSQL1 显示的 结果 select * from design where result like '%李大线%'
SqlCommand mycomm = new SqlCommand("select * from design where "+rbtnField.SelectedValue+" like '%李大线%' ", conn); 这个时候可以完成模糊搜索。。
strSQL1 = " select * from design where "+rbtnField.SelectedValue+ " = ' "+Textkeyword.Text+ " ' ";
strSQL 2= "select * from design where "+rbtnField.SelectedValue+ " = "+Textkeyword.Text+ " "
select * from design where kv = '35'
strSQL1 显示的 结果 select * from design where kv = '35'
strSQL1 显示的 结果 select * from design where kv = 35
这个时候的strSQL1和strSQL2是等价的,都可以用于查询。。
看样子,至少我的例子中,单引号' '是没有任何作用的,只有麻烦,以后尽量不用
⑶ sql server怎么转义单引号和双引号
当SET QUOTED_IDENTIFIER OFF时, "是字符串边界符, 字符串中的"必须用两个"表示。
vb: "" <=> "
sql server 2000: ''' <=> '
eg:
declare @SearchType nvarchar(50)
declare @SearchString nvarchar(255)
declare @SearchKey nvarchar(50)
declare @SearchSql nvarchar(2000)
set @SearchType = '2'
set @SearchKey = 'd'
set @SearchString = CASE @SearchType
when '1' then '1 = 1'
when '2' then 'p.ProjectName like ''' + '%' + @searchkey + '%' + ''''
when '3' then 'p.ProjectCity like ''' + '%'+ @searchkey + '%' +''''
when '4' then 'c.CateName like ''' + '%' + @searchkey + '%' + ''''
when '4' then 'p.ProjectManager like ''' + '%' + @searchkey + '%' +''''
END
set @SearchSql = N'
SELECT p.*,datename(year,ProjectPostTime)+ ' + '''-''' + ' + datename(month,ProjectPostTime)+ '+ '''-''' + ' + datename(day,ProjectPostTime)' + ' as PostTime, m.EmpName,c.CateName FROM proProject As p ,mrBaseInf As m ,proCate c WHERE p.EmpID = m.EmpID and p.CateID = c.CateID and '
+ @SearchString
print(@SearchSql)
exec(@SearchSql)
⑷ SQL 转义字符,如何在存储过程中写 ' (单引号)
在存储过程中,密码中有’(单引号),第一反应使用转义字符。敲上/(反斜杠),失败告终; 网络一下如下结果,SQL 的转义字符是:'(单引号),所以在密码中写’’(两个单引号),表示一个单引号。C++ 的转义字符是:\SQL 的转义字符是:'(单引号)例:select * from tbl where uyear='''06'请注意其中红色背景的单引号,它即表示转义字符,如果我们省略,则整个语句会出错,转义字符不会输出,上例中 uyear 的实际条件值为 '06,而不是 ''06为什么不能省略呢,假如我们省略,上句变成:select * from tbl where uyear=''06'由于在 SQL 中单引号表示字符串的开始和结束符号,于是 SQL 解释器会认为语句中灰色背景的为字符串,其后的语句显然是个错误的语句,当然会报错,为了解决字符串的单引号问题,就出现了转义字符单。
⑸ Oracle中的单引号怎么转义
1、在转义特殊字符的时候通常使用的就是单引号。但这种转义方式很不直观。
⑹ SQL语句中的单引号
您好,很高兴为您解答!
其实第一个sql中,吧username引起来的不是单引号,是esc下面那个按键打出来的;
第二个sql里面的就是单引号。
希望我的回答对您有用!
⑺ sql server中sql语句中单引号怎么转义
sql server有两个转义符:
' 默认情况下, '是字符串的边界符, 如果在字符串中包含', 则必须使用两个', 第1个'就是转义符
另一个转义符是"
当SET QUOTED_IDENTIFIER OFF时, "是字符串边界符, 字符串中的"必须用两个"表示。
vb: "" <= "
sql server 2000: ''' <= 'eg:declare @SearchType nvarchar(50)
declare @SearchString nvarchar(255)
declare @SearchKey nvarchar(50)
declare @SearchSql nvarchar(2000)
set @SearchType = '2'
set @SearchKey = 'd'
set @SearchString = CASE @SearchType
when '1' then '1 = 1'
when '2' then 'p.ProjectName like ''' + '%' + @searchkey + '%' + ''''
when '3' then 'p.ProjectCity like ''' + '%'+ @searchkey + '%' +''''
when '4' then 'c.CateName like ''' + '%' + @searchkey + '%' + ''''
when '4' then 'p.ProjectManager like ''' + '%' + @searchkey + '%' +''''ENDset @SearchSql = N'
SELECT p.*,datename(year,ProjectPostTime)+ ' + '''-''' + ' + datename(month,ProjectPostTime)+ '+ '''-''' + ' + datename(day,ProjectPostTime)' + ' as PostTime, m.EmpName,c.CateName FROM proProject As p ,mrBaseInf As m ,proCate c WHERE p.EmpID = m.EmpID and p.CateID = c.CateID and '
+ @SearchString
⑻ SQL双引号和单引号同时存在的时候该如何转义呢 比如这一句
这个转义的办法有点不好理解,就是用单引号转义单引号,比如''(这是两个单引号),不过很多时候是'''(三个单引号
一起写
),不过不要怕麻烦,最多我见过一次写了五个单引号的
⑼ SQL语句中转义字符怎么写
两种比较常见的方式 :1.用中括号[ ]转义。 2.用关键字ESCAPE 转义。