SQL語法 分隔符懂得小結。本站提示廣大學習愛好者:(SQL語法 分隔符懂得小結)文章只能為提供參考,不一定能成為您想要的結果。以下是SQL語法 分隔符懂得小結正文
二者重要的差別在於:分隔的標識符被括在雙引號中(Transact-SQL也支撐方括號的應用:[標識符])而且是辨別年夜小寫的。單引號只用於字符串的定界。總的來講,引入分隔的標識符是為了對標識符停止標准,不然就會與保存字雷同了。特殊要提到的是,分隔的標識符可以或許使你在定名(標識符或變量的名字)的時刻,免於應用在未來的SQL尺度中能夠湧現的保存字。別的,分隔的標識符可以或許包括一些在平日的標識符稱號中被視為不正當的字符,如空格。
在SQL SERVER中,雙引號的應用由SET 語句中的QUOTED_IDENTIFIER選項來界說。假如這個選項被設為ON,則雙引號中的標識符將被界說為一個分隔的標識符。在這類情形下,雙引號不克不及被用於定界字符串。”
記住以下幾句話就可以把分隔符懂得了
以上這段話是書上的原話,我對分隔的標識符的懂得是:例如"hu","h u",[hu],
[ h u]這幾個標識符都是分歧的,在應用時就像應用a,b等標識符一樣,只不外必需加上雙引號或中括號,不知如許懂得對纰謬。
我本身對分隔符的懂得:分隔符就是為了起到分隔感化。 SELECT * FROM "My Table"
WHERE "Last Name" = 'O''Brien'
自我剖析:SELECT,FROM,where是症結字。"My Table"就是標記符,而””就是分隔符
請年夜蝦們指教。
其實你懂得的挺對的
然則別忘了它的感化是為了界說標識符
相符一切標識符格局規矩的標識符可使用分隔符,也能夠不應用分隔符。
不相符標識符格局規矩的標識符必需應用分隔符。
分隔標識符鄙人列情形下應用:
當在對象稱號或對象稱號的構成部門中應用保存字時。
推舉不要應用保存症結字作為對象稱號。從 Microsoft® SQL Server™ 晚期版本進級的數據庫能夠含有標識符,這些標識符包含晚期版本中未保存而在 SQL Server 2000 中保存的字。可用分隔標識符援用對象直到可轉變其稱號。
當應用未被列為正當標識符的字符時。
SQL Server 許可在分隔標識符中應用以後代碼頁中的任何字符。然則,不加選擇地在對象稱號中應用特別字符將使 SQL 語句和劇本難以浏覽和保護。
Transact-SQL 所應用的分隔符類型:
解釋 分隔符僅用於標識符。分隔符不克不及用於症結字,豈論它們在 SQL Server 中能否被標志為保存字。
被援用的標識符用雙引號 (") 分離隔:
SELECT * FROM "Blanks in Table Name"
括在括號中的標識符用方括號 ([ ]) 分隔:
SELECT * FROM [Blanks In Table Name]
僅當 QUOTED_IDENTIFIER 選項設置為 ON 時,被援用的標識符才有用。默許情形下,當用於 SQL Server 的 Microsoft OLE DB 供給法式和 SQL Server ODBC 驅動法式銜接時,將 QUOTED_IDENTIFIER 設置為 ON。默許情形下,DB-Library 不將 QUOTED_IDENTIFIER 設置為 ON。不論應用何種接口,個體運用法式或用戶可隨時更改設置。SQL Server 供給了多種辦法來指定該選項。例如,在 SQL Server 企業治理器和 SQL 查詢剖析器中,該選項可在對話中設置。在 Transact-SQL 中,可使用 SET QUOTED_IDENTIFIER、sp_dboption 的 quoted identifier 選項或 sp_configure 的 user options 選項將此選項設為多種級別。
當 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 號 (&) 句號 (.)
左圓括號 (() 反斜槓 (\)
右圓括號 ()) 重音符號 (`)