佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > SQL語法 分隔符理解小結

SQL語法 分隔符理解小結

熱門標簽:Linux服務器 服務外包 AI電銷 百度競價排名 鐵路電話系統 地方門戶網站 網站排名優(yōu)化 呼叫中心市場需求
兩者主要的區(qū)別在于:分隔的標識符被括在雙引號中(Transact-SQL也支持方括號的使用:[標識符])并且是區(qū)分大小寫的。單引號只用于字符串的定界??偟膩碚f,引入分隔的標識符是為了對標識符進行規(guī)范,否則就會與保留字相同了。特別要提到的是,分隔的標識符能夠使你在命名(標識符或變量的名字)的時候,免于使用在將來的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"就是標志符,而””就是分隔符
請大蝦們指教。
其實你理解的挺對的
但是別忘了它的作用是為了定義標識符
符合所有標識符格式規(guī)則的標識符可以使用分隔符,也可以不使用分隔符。
不符合標識符格式規(guī)則的標識符必須使用分隔符。
分隔標識符在下列情況下使用:
當在對象名稱或對象名稱的組成部分中使用保留字時。
推薦不要使用保留關鍵字作為對象名稱。從 Microsoftreg; SQL Server#8482; 早期版本升級的數據庫可能含有標識符,這些標識符包括早期版本中未保留而在 SQL Server 2000 中保留的字??捎梅指魳俗R符引用對象直到可改變其名稱。
當使用未被列為合法標識符的字符時。
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 企業(yè)管理器和 SQL 查詢分析器中,該選項可在對話中設置。在 Transact-SQL 中,可以使用 SET QUOTED_IDENTIFIER、sp_dboption 的 quoted identifier 選項或 sp_configure 的 user options 選項將此選項設為多種級別。
當 QUOTED_IDENTIFIER 為 ON 時,對于 SQL 語句中的雙引號和單引號 (') 的使用,SQL Server 遵循 SQL-92 規(guī)則:
雙引號只能用于分隔標識符,不能用于分隔字符串。
為保持與現有應用程序的兼容性,SQL Server 并不完全強制該規(guī)則。如果字符串沒有超過標識符的長度,則該字符串可包含在雙引號內。但不建議這樣做。
單引號必須用來包含字符串,不能用于分隔標識符。
如果字符串包含單引號,則需要在單引號前再增加一個單引號:
SELECT * FROM "My Table"
WHERE "Last Name" = 'O''Brien'
當 QUOTED_IDENTIFIER 為 OFF 時,對于雙引號和單引號的使用,SQL Server 遵循如下規(guī)則:
引號不能用于分隔標識符,而是用括號作為分隔符。
單引號或雙引號可用于包含字符串。
如果使用雙引號,嵌入的單引號不需要用兩個單引號來表示:
SELECT * FROM [My Table]
WHERE [Last Name] = "O'Brien"
無論 QUOTED_IDENTIFIER 的設置如何,都可以在括號中使用分隔符。
分隔標識符規(guī)則
分隔標識符的格式規(guī)則是:
分隔標識符可以包含與常規(guī)標識符相同的字符數(1 到 128 個,不包括分隔符字符)。本地臨時表標識符最多可以包含 116 個字符。
標識符的主體可以包含當前代碼頁內字母(分隔符本身除外)的任意組合。例如,分隔符標識符可以包含空格、對常規(guī)標識符有效的任何字符以及下列任何字符: 代字號 (~) 連字符 (-)
驚嘆號 (!) 左括號 ({)
百分號 (%) 右括號 (})
插入號 (^) 撇號 (')
and 號 () 句號 (.)
左圓括號 (() 反斜杠 (\)
右圓括號 ()) 重音符號 (`)
您可能感興趣的文章:
  • C# Split分隔字符串的應用(C#、split、分隔、字符串)
  • Oracle逗號分隔列轉行實現方法
  • PHP 將逗號、空格、回車分隔的字符串轉換為數組的函數
  • 在MySQL字段中使用逗號分隔符的方法分享
  • 用JQuery在網頁中實現分隔條功能的代碼
  • java之路徑分隔符介紹
  • java獲得平臺相關的行分隔符和java路徑分隔符的方法
  • jquery插件jquery.beforeafter.js實現左右拖拽分隔條對比圖片的方法
  • jQuery實現分隔條左右拖動功能
  • 基于JQuery實現分隔條的功能

標簽:黃山 銅川 蘭州 衡水 仙桃 崇左 湖南 湘潭

巨人網絡通訊聲明:本文標題《SQL語法 分隔符理解小結》,本文關鍵詞  ;如發(fā)現本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 上一篇:最常用的SQL語句

    下一篇:sql 服務器知識

    收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    山西省| 安塞县| 桓仁| 西乡县| 翁牛特旗| 肇东市| 大连市| 许昌县| 普兰店市| 绥芬河市| 太保市| 道孚县| 松阳县| 堆龙德庆县| 略阳县| 如皋市| 新郑市| 嘉黎县| 宿州市| 江油市| 同心县| 无为县| 友谊县| 资中县| 兰考县| 荆州市| 禹州市| 如皋市| 唐海县| 高台县| 黄大仙区| 峨边| 都兰县| 平罗县| 平果县| 宁都县| 沧源| 镇江市| 峡江县| 合阳县| 收藏|