首頁 資料庫 mysql教程 SQL语法 分隔符理解小结

SQL语法 分隔符理解小结

Jun 07, 2016 pm 05:59 PM
sql語法 分隔符

单引号和双引号之间的区别最早在SQL92标准中引入的。对于标识符,这个标准区分了常规标识符和分隔的标识符。

两者主要的区别在于:分隔的标识符被括在双引号中(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 号 (&) 句号 (.)
左圆括号 (() 反斜杠 (\)
右圆括号 ()) 重音符号 (`)
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

如何在 iPhone 上變更數位格式 如何在 iPhone 上變更數位格式 Apr 13, 2023 pm 06:16 PM

您可以在 iOS 16 上選擇哪些數位格式隨著對 iOS 16.4 (beta 2) 的更改,您可以為您的 iPhone 選擇三種不同的數位格式。這些格式使用空格、逗號和句點作為分隔數字中千位的符號或作為小數點。小數點是用於將值的整數部分與其小數部分分開的字符,通常由句點 (.) 或逗號 (,) 分配。千位分隔符號用於將多位數的數字分成三組,通常由句點 (.)、逗號 (,) 或空格 ( ) 指定。在最新版本的 iOS 上,您將能夠套用以下任何一種數位格式作為 iPhone 的首選選項:1,23

C語言中有哪些特殊符號? C語言中有哪些特殊符號? Aug 26, 2023 pm 01:41 PM

在C程式語言中,通常情況下,特殊符號具有特殊的意義,不能用於其他目的。在C編程中使用的一些特殊符號如下−[](){},;*=#讓我們了解它們的定義,如下所示:方括號[]-方括號的開閉用於數組元素引用,表示單一和多維下標。圓括號()-這些特殊符號用於函數呼叫和函數參數。花括號{}-花括號的開閉表示包含多個可執行語句的程式碼區塊的開始和結束。逗號(,)-用來分隔多個語句,例如函數呼叫中的參數分隔。冒號(:)-這是一個運算符,實際上呼叫了一個叫做初始化列表的東西。分號(;)-它被稱為語

MySQL技術的限制:為何不足以與Oracle匹敵? MySQL技術的限制:為何不足以與Oracle匹敵? Sep 08, 2023 pm 04:01 PM

MySQL技術的限制:為何不足以與Oracle匹敵?引言:MySQL和Oracle是當今世界最受歡迎的關聯式資料庫管理系統(RDBMS)之一。雖然MySQL在Web應用開發和小型企業中非常流行,但在大型企業和複雜資料處理領域,Oracle卻一直佔據主導地位。本文將探討MySQL技術的局限性,並解釋為何不足以與Oracle匹敵。一、效能和擴充性限制:MySQL在

如何將 MacOS Ventura 中的小數分隔符號從逗號變更為點 如何將 MacOS Ventura 中的小數分隔符號從逗號變更為點 Apr 15, 2023 pm 12:43 PM

在MacOSVentura中更改小數分隔符號和數字格式前往Apple選單並選擇“系統設定”轉到“一般”選擇“語言和地區”找到“數字格式”並下拉旁邊的子選單以存取各種數字格式選項,允許您將小數點分隔符號變更為逗號、點或空格選擇您想要的數字格式,該設定將立即貫穿整個MacOS。 MacOSVentura系統設定中缺少「數字格式」?一些使用不同區域設定的Mac用戶發現他們的MacOSVentura系統設定中缺少數位格式部分,這是一個嚴重的疏忽或一個可愛的錯誤。無論如何,如果您發現自己缺少數字格

使用java的String.join()函數使用指定分隔符號連接字串數組 使用java的String.join()函數使用指定分隔符號連接字串數組 Jul 25, 2023 pm 06:53 PM

使用Java的String.join()函數使用指定分隔符號連接字串陣列在Java程式設計中,有時我們需要將一個字串陣列連接成一個字串,並且在每個字串之間加上一個特定的分隔符號。這時候可以使用Java內建的String.join()函數來實作這個功能。 String.join()函數接受兩個參數:一個是分隔符,一個是待連接的字串陣列。它會將數組中的字串按

如何使用String類別的split()方法根據某個分隔符號拆分字串 如何使用String類別的split()方法根據某個分隔符號拆分字串 Jul 24, 2023 pm 09:32 PM

如何使用String類別的split()方法根據某個分隔符號拆分字串概述:在Java程式語言中,String類別是一個非常重要且常用的類別。 String類別提供了許多實用的方法,其中split()方法被用來拆分字串。 split()方法根據指定的分隔符號將一個字串分割成多個子字串,並將這些子字串儲存在一個字串陣列中。本文將介紹如何使用String類別的split

php伺服器腳本分隔符號有哪些 php伺服器腳本分隔符號有哪些 Sep 18, 2023 pm 01:58 PM

php伺服器腳本分隔符號有「<?php」、「<?」、「?>」、「<!--」和「//-->」等。詳細介紹:1、“<?php”,這是PHP中最常見的開始標記,用於標識PHP代碼塊的開始,在這個標記之後,可以寫入任意的PHP代碼;2、“<?”,短標記是PHP中的另一個開始標記,它比較簡潔,並且在PHP配置中可以透過設定修改,由於短標記可能會與其他語言的標記衝突,因此不建議使用等等。

深入了解PHP伺服器腳本分隔符號:全面掌握各種分隔符號的用法和特性 深入了解PHP伺服器腳本分隔符號:全面掌握各種分隔符號的用法和特性 Jan 11, 2024 pm 05:16 PM

PHP伺服器腳本分隔符號大全:全面了解各種分隔符號的用法與特點,需要具體程式碼範例一、引言在PHP伺服器腳本編寫過程中,為了實現不同的功能和邏輯,我們需要使用到各種分隔符號。分隔符號在PHP程式碼中具有非常重要的作用,可以用於分割字元、字串或程式碼區塊等。本文將介紹PHP伺服器腳本常見的分隔符,並詳細說明其用法和特點,同時提供相關的程式碼範例,以便讀者更好地理解和應用。二、

See all articles