⑴ sql語句什麼時候加引號
明顯不對。x0dx0aselect...是sql語句。x0dx0a$_post...是php語句。x0dx0ax0dx0a如果嫌賀返你寫的是sql語句,那就不能有$_post[]x0dx0a如果你寫的是php語句,那就應該把其中的sql語句部分作為一般的字元串處理:x0dx0a$sql="select*fromawhere`name`=";x0dx0a$sql.=$_post['name'];x0dx0a然後再用php的sqllibrary的function來運行這個字元串$sqlx0dx0ax0dx0a在純sql語句中,如愛老婆所說,欄位名加`或者什麼也不加;字元類型的數值加單引號芹飢。x0dx0a在php語句中,由於sql部分被認為是字元串,所以要加單/雙引號。但因為sql語句中,本身可能包含單引號,所以為了分辨,必須用雙引號。x0dx0a而$_post['name']的意思是,php在載入頁面的時候,把所有用html的post方法得到的變數都放入了一個叫_post的數組中。$_post['name']就是調用_post數組中,名稱為字元串name的那個變數的值。拍衫
⑵ 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、字元串用單引號;表名,欄位名等用反引號;大小寫沖突用雙引號。
⑶ 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語句什麼時候用雙引號或者單引號
估計你問的問題是在程序里寫代碼的時候有雙引號和單引號!~
雙引號表示
庫里的欄位是數值型的!~
而單引號是表示字元型的!~
select
*
from
table
where
a="text1.text"
and
b='"
text2.text"'"
⑸ SQL語句中變數加引號和不加引號有什麼區別
首先'.'符號是php的字元串連接符,2個點的作用是連接成一敗滑句話。
第一句話的單引號是為了,給數租這個值加上單薯枯兆引號。到時候sql語句,就是這樣了。select
user_id
from
user
where
`user_id`='11111'
其實這樣寫很是看起來不明了,這樣寫的話,就好看多了
$uid=$_post['user_id'];
$sql="select
user_id
from
user
where
`user_id`='$uid'";
⑹ sql建表語句中表名和類型加雙引號什麼意思
loginname
指的就是一個變數名<與資料庫里的欄位匹配>,
而'"+login1.username+"'
就是你輸入的值,
假如只有單引號,系統會認為變數就是login1.username,
而這個值是固定的,然而我們需要的是一個變數,
所以就得再加一個雙引號,
至於
『+』
就是連接字元串的意思、、、
⑺ SQL語句使用的雙引號與加號表示什麼意思
因為insert into Employee(Emp_Name,Sex,Title,Age) values('','','','')
後面必須是加單引號的格式。
用個欄位的值加一個+號,就可以變成這種格式。
至於age,如果是int類型的話,就什麼也不加;
如果是char類型的,就需要變成那種格式。
你什麼的age不保證對。
⑻ 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 使用單引號來環繞文本值(大部分資料庫系統也接受雙引號)。如果是數值,請不要使用引號。文本值:
這是正確的: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中單引號跟雙引號有什麼區別分別用於什麼情況
你如果一串變數字元中要加入自己的字元必須用單引號來轉換,而雙引號只是簡單的字元!