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 轉義。