sql單引號和雙引號
Ⅰ sql中雙引號 " 單引號' 反單引號`的作用和區別
雙引號在最外層,是用來包含這個SQL語句的,單引號是用來包含字元串的,當表中的欄位為char或者varchar時,數據要用單引號包括起來。這兩個想必學過的都很容易理解,讓人困惑的是倒引號(反單引號)用來幹嘛的呢,其實是我們在命名欄位的時候,欄位名與SQL關鍵字沖突了,這時候要用倒引號包含一下來規避關鍵字檢測,這種情況對一個合格的程序員來說要盡量避免。
Ⅱ SQL查詢語句中單引號和雙引號的問題
是這樣的在SQL里字元型只能用單引號,雙引號是引用的鏈接資料庫的程序里的,如果要用雙引號,在SQL里要加個',要是要加單引號也一樣前面加個'所以就變成''',''了
Ⅲ sql中單引號跟雙引號有什麼區別分別用於什麼情況
你如果一串變數字元中要加入自己的字元必須用單引號來轉換,而雙引號只是簡單的字元!
Ⅳ SQL 中 單引號和雙引號的區別
表示你的字元串中含有引號。單引號在sql語句中,一個'用兩個連續的''替換。雙引號則不需要特殊處理。
Ⅳ SQL中什麼情況下用引號
在標准sql中,引號的使用
請注意,我們在例子中的條件值周圍使用的是單引號。SQL 使用單引號來環繞文本值(大部分資料庫系統也接受雙引號)。如果是數值,請不要使用引號。文本值:
這是正確的:SELECT * FROM Persons WHERE FirstName='Bush' 這是錯誤的:SELECT * FROM Persons WHERE FirstName=Bush 數值:
這是正確的:SELECT * FROM Persons WHERE Year>1965 這是錯誤的:SELECT * FROM Persons WHERE Year>'1965' 「單引號和雙引號之間的區別最早在SQL92標准中引入的。對於標識符,這個標准區分了常規標識符和分隔的標識符。兩者主要的區別在於:分隔的標識符被括在雙引號中(Transact-SQL也支持方括弧的使用:[標識符])並且是區分大小寫的。單引號只用於字元串的定界。總的來說,引入分隔的標識符是為了對標識符進行規范,否則就會與保留字相同了。特別要提到的是,分隔的標識符能夠使你在命名(標識符或變數的名字)的時候,免於使用在將來的SQL標准中可能出現的保留字。另外,分隔的標識符能夠包含一些在通常的標識符名稱中被視為不合法的字元,如空格。
在SQL SERVER中,雙引號的使用由SET 語句中的QUOTED_IDENTIFIER選項來定義。如果這個選項被設為ON,則雙引號中的標識符將被定義為一個分隔的標識符。在這種情況下,雙引號不能被用於定界字元串。」
當 QUOTED_IDENTIFIER 為 ON 時,對於 SQL 語句中的雙引號和單引號 (') 的使用,SQL Server 遵循 SQL-92 規則:
雙引號只能用於分隔標識符,不能用於分隔字元串。
為保持與現有應用程序的兼容性,SQL Server 並不完全強制該規則。如果字元串沒有超過標識符的長度,則該字元串可包含在雙引號內。但不建議這樣做。
單引號必須用來包含字元串,不能用於分隔標識符。
如果字元串包含單引號,則需要在單引號前再增加一個單引號:
SELECT * FROM "My Table"
WHERE "Last Name" = 'O''Brien'
當 QUOTED_IDENTIFIER 為 OFF 時,對於雙引號和單引號的使用,SQL Server 遵循如下規則:
引號不能用於分隔標識符,而是用括弧作為分隔符。
單引號或雙引號可用於包含字元串。
如果使用雙引號,嵌入的單引號不需要用兩個單引號來表示:
SELECT * FROM [My Table]
WHERE [Last Name] = "O'Brien"
無論 QUOTED_IDENTIFIER 的設置如何,都可以在括弧中使用分隔符。
分隔標識符規則
分隔標識符的格式規則是:
分隔標識符可以包含與常規標識符相同的字元數(1 到 128 個,不包括分隔符字元)。本地臨時表標識符最多可以包含 116 個字元。
標識符的主體可以包含當前代碼頁內字母(分隔符本身除外)的任意組合。例如,分隔符標識符可以包含空格、對常規標識符有效的任何字元以及下列任何字元: 代字型大小 (~) 連字元 (-)
驚嘆號 (!) 左括弧 ({)
百分號 (%) 右括弧 (})
插入號 (^) 撇號 (')
and 號 (&) 句號 (.)
左圓括弧 (() 反斜杠 (\)
右圓括弧 ()) 重音符號 (`) 轉載標識符的概念: 資料庫名是一個標識符,表名也是一個標識符,在SQL SERVER中標識符分為兩類:標識符有兩類:常規標識符符合標識符的格式規則。在 Transact-SQL 語句中使用常規標識符時不用將其分隔。SELECT *FROM TableXWHERE KeyCol = 124
分隔標識符包含在雙引號 (") 或者方括弧 ([ ]) 內。符合標識符格式規則的標識符可以分隔,也可以不分隔。SELECT *FROM [TableX] --Delimiter is optional.WHERE [KeyCol] = 124 --Delimiter is optional.在 Transact-SQL 語句中,對不符合所有標識符規則的標識符必須進行分隔。SELECT *FROM [My Table] --Identifier contains a space and uses a reserved keyword.WHERE [order] = 10 --Identifier is a reserved keyword.常規標識符和分隔標識符包含的字元數必須在 1 到 128 之間。對於本地臨時表,標識符最多可以有 116 個字元。兩者重要的區別:常規標識符必須嚴格遵守命名的規定,而分隔標識符則可以不遵守命名規定,只要用[],""分隔出來就可以。標識符格式:
1、標識符必須是統一碼(Unicode)2.0標准中規定的字元,以及其他一些語言字元。如漢字.
2、標識符後的字元可以是(除條件一)「_」、「@」、「#」、「$」及數字。
3、標識符不允許是Transact-SQL的保留字。
4、標識符內不允許有空格和特殊字元。
另外,某些以特殊符號開頭的標識符在SQLSERVER 中具有特定的含義。如以「@」開頭的標識符表示這是一個局部變數或是一個函數的參數;以#開頭的標識符表示這是一個臨時表或是一存儲過程。以「##」開頭的表示這是一個全局的臨時資料庫對象。Transact-SQL的全局變數以「@@」開頭。標識符最多可以容納128個字元。
Ⅵ 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語句中什麼時候用單引號什麼時候用雙引號如圖中的紅為什麼用雙引號
一般都用單引號,但是圖中SQL識別雙引號.應該和編輯器軟體有關,可能編輯軟體有轉換.
但是在其它語言編輯器寫程序就只能用單引號,原因就是你所用的編輯器自己也有雙引號在拼寫SQL的時如果也出現雙引的話就會錯
Ⅷ sql中什麼時候需要用雙引號,什麼時候用單引號;
這就要從雙引號和單引號的作用講起:
1,雙引號裡面的欄位會經過編譯器解釋然後再當作HTML代碼輸出,但是單引號裡面的不需要解釋,直接輸出。例如:
$abc='I love u';
echo $abc //結果是:I love u
echo '$abc' //結果是:$abc
echo "$abc" //結果是:I love u
2,所以在對資料庫裡面的SQL語句賦值的時候也要用在雙引號裡面SQL="select a,b,c from ..."
3,但是SQL語句中會有單引號把欄位名引出來
例如:select * from table where user='abc';
這里的SQL語句可以直接寫成SQL="select * from table where user='abc'"
4,但是如果象下面:
$user='abc';
SQL1="select * from table where user=' ".$user." ' ";對比一下
SQL2="select * from table where user=' abc ' "
5,我把單引號和雙引號之間多加了點空格,希望你能看的清楚一點。
也就是把'abc' 替換為 '".$user."'都是在一個單引號裡面的。只是把整個SQL字元串分割了。
SQL1可以分解為以下3個部分
1:"select * from table where user=' "
2:$user
3:" ' "
字元串之間用 . 來連接。
Ⅸ Sql中,什麼時候用單引號,什麼時候用雙引號,最好具體點,有效的話,一定採納的
您好,提問者:
一般情況下,單引號用的多,雙引號用的好。
插入、更新、刪除、查詢:
insert into xx(name) values('單引號');
delete from xx where name = '單引號';
select * from xx where name = '單引號';
update xx set name = '單引號' where id = 1;
下面是雙引號情況:
select name as "姓名" from xx;