當前位置:首頁 » 數據倉庫 » 資料庫語句什麼時候加單引號
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

資料庫語句什麼時候加單引號

發布時間: 2023-04-12 10:20:58

『壹』 求大神告訴 oracle資料庫中單引號與雙引號的區別,什麼時候用單引號,什麼時候用雙引號

單引號是普通字元串,雙引號一般用在表名和列名的地方。


例如通過在創建表的時候, 在欄位上, 加 雙引號, 來強制區分大小寫

sql">CREATETABLE"T3"(
"T01"INT,
"T02"INT
);

CREATETABLE"t4"(
"t01"INT,
"t02"INT
);



而普通的字元串處理, 就是單引號



SQL>SELECT
2CONCAT('Good','Morning!')A,
3'Good'||'Morning!'B
4FROM
5al;

AB
----------------------------------------------------
GoodMorning!GoodMorning!

『貳』 在SQL中字元何時用單引號引住何時用雙引號引住雙引號和單引號有什麼區別

編程語言中的標點符號可不是像我們說話一樣可以隨便加別人也知道你要說什麼,但是電腦就不一樣了,使用不當就會造成錯誤會給你造成很大麻煩,PHP中的單引號和雙引號的使用是新手們經常遇到的問題,本文詳解兩者區別,希望對新手有幫助!

在PHP中,通常一個字元串被定義在一對引號中,如:

'I am a string in single quotes'
"I am a string in double quotes"

PHP語法分析器是用成對的引號來判斷一個字元串的。因此,所有字元串必須使用同一種單或者雙
引號來定義開始和結束。例如,下面的字串定義是不合法的:

"I am not a valid string since I have unmatching quote marks'
'Me neither!"

定義字元串時,只有一種引號被視為定義符,即單引號或雙引號。於是,如果一個字元串由雙引
號開始,那麼只有雙引號被分析器解析。這樣,你就可以在雙引號串中包含任何其他字元,甚至單引
號。下面的引號串都是合法的:

$s = "I am a 'single quote string' inside a double quote string";
$s = 'I am a "double quote string" inside a single quote string';

當PHP遇到與串的開頭相對應的引號時,便認為已經到了字元串尾部,於是:

"Why doesn't "this" work?"

實際上被PHP語法分析器分成三個部分:

"Why doesn't "——包含一個單引號的雙引號串
this——多餘的字元,分析器無法處理
" work?" ——普通字元串

上面的這個例子企圖在雙引號串中包含雙引號,而分析器在遇到第二個雙引號時便認為字元串結
束了。要達到包含引號的目的,必須分析器在遇到串內普通引號的時候忽略它的原意,我們在引號的
前面加上一個反斜杠來告訴PHP:這個引號是字元串的一部分,正確的表示方法是這樣:

"Why doesn't \"that\" work?"

在英文字元串中一個常見的問題是撇號'的使用,因為它就是一個單引號,而在英文串中十分常見
(英文所有格)。你必須小心處理這些字元:

'You\'d better escape your apostrophes'

可以看到反斜杠在字元串中有他的特殊含義,當我們需要在字元串中包含反斜杠本身時,需要在
該符號前面多加一個反斜杠。例如:

$file = "c:\windows\system.ini";
echo $file; // 列印結果為: c:windowssystem.ini
$file = "c:\\windows\\system.ini";
echo $file; // 列印結果為: c:\windows\system.ini

另一種字元串定義方式,能夠消除特殊字元的煩惱,而且便於引用較長的文本。該字元串定義方
法以<<<符號緊跟一個自定義字元串開頭,最後一行以該自定義字元串結束,並且必須頂格。

二、字串的連接

字串可以使用字串連接符(.)來連接,如:

$first_name = 'Charlie';
$last_name = 'Brown';
$full_name = $first_name . ' ' . $last_name;

常見的用途是建立大塊的HTML字串代碼,賦值號 (=) 連接符 (.) 可以被簡寫合並為 (.=) 符
號,如:

$html = '<table>';
$html .= '<tr><td>number</td><td>square</td></tr>';
for ( $i=0 ; $i<10 ; $i++) {
$square = $i * $i;
$html .= '<tr><td>' . $i . '</td><td>' . $square . '</td></tr>';
}
$html .= '</table>';

三、在字串中使用變數

這個功能讓你無須使用連接符號來粘和大量的簡單字元串。PHP允許我們在雙引號串中直接包含字
串變數,我們可以發現下面的兩個字串的處理結果是相同的。

$full_name = $first_name . ' ' . $last_name;
$full_name = "$first_name $last_name";

單引號串和雙引號串在PHP中的處理是不相同的。雙引號串中的內容可以被解釋而且替換,而單引
號串中的內容總被認為是普通字元。例如:

$foo = 2;
echo "foo is $foo"; // 列印結果: foo is 2
echo 'foo is $foo'; // 列印結果: foo is $foo
echo "foo is $foo\n"; // 列印結果: foo is 2 (同時換行)
echo 'foo is $foo\n'; // 列印結果: foo is $foo\n

正如你所看到的,在單引號串中甚至反斜杠也失去了他的擴展含義(除了插入反斜杠\\和插入單 引號\')。所以,當你想在字串中進行變數代換和包含\n(換行符)等轉義序列時,你應該使用雙引
號。單引號串可以用在其他任何地方,腳本中使用單引號串處理速度會更快些,因為PHP語法分析器對
單引號串的處理方式比較單純,而雙引號的處理由於串內部也需要解析,因此更復雜些,所以處理速
度略慢。

在字元串中引用復雜的變數組合時,可能會產生一些問題,下面的代碼會正常工作:

echo "value = $foo";
echo "value = $a[$i]";

而下面的代碼卻不能得到我們希望的結果:

echo "value = $a[$i][$j]"; //我們希望列印二維數組$a的某個元素。

為避免這些字串使用中的潛在問題,我們通常把復雜的變數從字串中分離開來,就像這樣:

echo 'value = ' . $a[$i][$j];

還有一種辦法是將復雜變數用花括弧括起來,語法分析器就能正確辨認了:

echo "value = {$a[$i][$j]}" //列印二維數組$a的某個元素

這樣,又出現新問題了。當我們想在字串中引用花括弧字元本身時,就要記得使用轉義符了:

$var = 3;
echo "value = {$var}"; // 列印結果 "value = 3"
echo "value = \{$var}"; // 列印結果 "value = {3}"

三、斜杠和SQL語句

生成HTML代碼或SQL查詢語句是編寫PHP程序時經常遇到而且是件有趣的事情。為什麼這么說呢,
因為這涉及到生成另外一種類型的代碼,你必須仔細地考慮和遵循這種代碼所要求的編寫語法和規
則。

我們來看這樣一個例子,假如你想查詢資料庫中名字是「O'Keefe」的用戶,通常SQL語句的形式
是這樣的:

select * from users where last_name = 'O\'Keefe'

請注意SQL語句這個英文所有格(撇號)需使用反斜杠轉義。PHP專門提供了一些函數來處理這樣
的情況,函數AddSlashes($str)的用途就是自動在字串中對引號字元插入反斜杠轉義符:

$last_name = "O'Keefe";
$sql = "select * from users where last_name = '" . addslashes($last_name) . "'";

在這個例子中,你還要在last_name字串外面括上單引號(SQL語法要求),由於這里使用的是雙
引號串,所以對這對單引號就無須使用轉義了。下面的這個語句是使用單引號串的等價形式:

$sql = 'select * from users where last_name = \'' . addslashes($last_name) . '\'';

任何時候你要在資料庫中寫入字串,你都必須確保裡面的引號正確使用了轉義符號,這是很多PHP
初學者常犯的錯誤。

四、雙引號和HTML

與SQL語句不同,在標准HTML語言中雙引號常被用來表示字串(現在很多瀏覽器具備較強的容錯功
能,允許在HTML中用單引號甚至不用引號表示字元串),例如:

$html = '<a href="'.$url.'">'.$link.'</a>';
$html = "<a href=\"$url\">$link</a>";

HTML語言不支持反斜杠轉義,這一點在我們使用表單的hidden inputs來傳輸數據的時候就會有所
體會了。設置hidden inputs的值的最好辦法,是使用htmlspecialchars()函數來編碼。下面的語句可
以正常傳輸一個可能包含雙引號的數據:

<input type=hidden name=var value="<?php echo htmlspecialchars($var) ?>">

一、引號定義字元串。要達到包含引號的目的, 必須分析器在遇到串內普通引號的時候忽略它的原意,我們在引號的 前面加上一個反斜杠來告訴PHP:這個引號是字元串的一部分,正確的表示方法是這樣:單引號串可以用在其他任何地方,腳本中使用單引號串處理速度會更快些,因為PHP語法分析器對 單引號串的處理方式比較單純,而雙引號的處理由於串內部也需要解析,因此更復雜些,所以處理速 度略慢。

這個...雙引號轉義,單引號不轉義
如:/r/n是換行,但是如果你用單引號寫入文件,不會是換行,而是一個字元,如果用雙引號寫入文件,就是換行.

『叄』 sql語句什麼時候加引號

明顯不對。
select...是sql語句。
$_post...是php語句。

如果你寫的是sql語句,那就不能有$_post[]
如果你寫的是php語句,那就應該把其中的sql語句部分作為一般的字元串處理:
$sql = "select * from a where `name`=";
$sql .= $_post['name'];
然後再用php的sql library的function來運行這個字元串$sql

在純sql語句中,如 愛老婆 所說,欄位名加`或者什麼也不加;字元類型的數值加單引號。
在php語句中,由於sql部分被認為是字元串,所以要加單/雙引號。但因為sql語句中,本身可能包含單引號,所以為了分辨,必須用雙引號。
而$_post['name']的意思是,php在載入頁面的時候,把所有用html的post方法得到的變數都放入了一個叫_post的數組中。$_post['name']就是調用_post數組中,名稱為字元串name的那個變數的值。

『肆』 sql語句中什麼時候用單引號什麼時候用雙引號如圖中的紅為什麼用雙引號

一般都用單引號,但是圖中SQL識別雙引號.應該和編輯器軟體有關,可能編輯軟體有轉換.
但是在其它語言編輯器寫程序就只能用單引號,原因就是你所用的編輯器自己也有雙引號在拼寫SQL的時如果也出現雙引的話就會錯

『伍』 asp中sql語句中什麼時候加單引號,什麼時候加雙引號

"select * from users Where UserAccount=" + "'" + UserName + "'" + "And UserPwd=" + "游兆'" + strMd5 + "'"螞磨余
select * from users Where UserAccount='UserName1' And UserPwd='Md5Pwd'
這就是從c#翻譯過來的sql語句,其中單引號間表示資料庫中的字元類使用,比如id like 'aaa001',雙引號表示c#裡面的字元串。資料庫中的字元類的比較建議使用LIKE,不要用=
select * from users Where UserAccount Like 'UserName1' And UserPwd Like 'Md5Pwd'(在user表中查找用戶名為"UserName1"並且經過MD5加密後的密文為"Md5Pwd"的記錄,若存在,表示悶滾該用戶用戶名與密碼一致,允許登錄系統

『陸』 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個字元。

『柒』 Access里往資料庫輸入值的時候什麼情況加引號

你好,很高興為您解答。 用兩個單引號,表示寬喚讓一個鏈如單引號,比如插入1個單引號insert into 表(欄位)values('''')單引號里邊的兩個慎局單引號就表示1個單引號。

『捌』 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語言哪幾種情況要用單引號

單引號是用來界定
字元變數
的范圍。
雙引號是界定
變數名

SQL
字串的。之間還要用
&
連接的。
舉例:
"select
*
from
wen
where
title
like
'%"&keyword&"%'
order
by
id
desc"
keyword
是變數名,儲存的是字元型數據。

『拾』 sql語句引號用法 資料庫中引號的用法

1、首先先來說一下單引號和反引號,這里的 '圖書ID' 就使用到了單引號,而

2、CREATE TABLE `book` 這里的 book 就使用到了反引號。

3、單引號:在例子中的條件值周圍使用的是單引號。SQL 使用單引號來環繞文本值。如果是數值,請不要使用引號。按照別的說法來說就是Varchar類型(也可以說是String、字元串類型)這一些在資料庫語句中使用的時候應該使用單引號,而不是直接使用。而對於數值類型的,反而是不能使用單引號。

4、反引號:它是為了區分MYSQL的保留字與普通字元而引入的符號。

5、注意劃重點:有MYSQL保留字作為欄位的,必須加上反引號來區分!

6、雙引號的用法和單引號有所類似,大多數資料庫都支持單引號和雙引號的互換,即varchar類型的變數既可以用單引號來囊括,也可以用雙引號。當然了,一邊單引號,一邊雙引號是不被允許的。

7、另外,在oracle裡面,雙引號還有一個意義,那就是保留大小寫。在oracle資料庫裡面,所有的欄位是默認為轉化成大寫後進資料庫的,所以如果有一個表名為user,這個時候select * from user;這個語句是查不出任何數據的!(明明創建了表,也會提示表不存在的錯誤)只有select * from 「user」才可以,因為上面的語句會默認轉化為大寫。

8、字元串用單引號;表名,欄位名等用反引號;大小寫沖突用雙引號。