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 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

iPhoneで数値形式を変更する方法 iPhoneで数値形式を変更する方法 Apr 13, 2023 pm 06:16 PM

iOS 16 で選択できる数値形式 iOS 16.4 (ベータ 2) への変更により、iPhone で 3 つの異なる数値形式から選択できるようになりました。これらの形式では、数値の千桁を区切る記号または小数点として、スペース、カンマ、ピリオドが使用されます。小数点は、値の整数部分と小数部分を区切るために使用される文字で、通常はピリオド (.) またはコンマ (,) によって割り当てられます。千の区切り記号は、複数桁の数値を 3 つのグループに分けるために使用され、通常はピリオド (.)、カンマ (,)、またはスペース () で指定されます。最新バージョンの 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) の 1 つです。 MySQL は Web アプリケーション開発や中小企業で非常に人気がありますが、大企業や複雑なデータ処理の世界では Oracle が常に優位に立っています。この記事では、MySQL テクノロジーの限界を探り、Oracle と競合するのにそれだけでは不十分な理由を説明します。 1. パフォーマンスとスケーラビリティの制限: MySQL は

MacOS Ventura で小数点区切り文字をカンマからドットに変更する方法 MacOS Ventura で小数点区切り文字をカンマからドットに変更する方法 Apr 15, 2023 pm 12:43 PM

MacOS Ventura で小数点区切り文字と数値形式を変更する  Apple メニューに移動し、[システム設定] を選択します。 [一般] に移動します。 [言語と地域] を選択します。 [数値形式] を見つけて、その横にあるサブメニューをプルダウンして、さまざまな設定にアクセスします。数値形式オプション を使用すると、小数点区切り文字をカンマ、ドット、スペースに変更して希望の数値形式を選択でき、その設定は MacOS 全体に即座に適用されます。 MacOS Ventura システム設定に「数値形式」がありませんか?別のロケールを使用している一部の Mac ユーザーは、重大な見落としかかわいいバグかを問わず、MacOS Ventura システム設定に数値の書式設定セクションが欠落していることに気づきました。とにかく、数字グリッドが欠けていることに気付いた場合は、

PHPサーバースクリプトの区切り文字は何ですか? PHPサーバースクリプトの区切り文字は何ですか? Sep 18, 2023 pm 01:58 PM

PHP サーバー スクリプトの区切り文字には、「<?php」、「<?」、「?>」、「<!--」、「//-->」が含まれます。詳細な紹介: 1. PHP で最も一般的な開始タグである「<?php」は、PHP コード ブロックの先頭を識別するために使用されます。このタグの後には、任意の PHP コードを記述することができます。2. 「<?」短いタグは、PHP の開始タグの一種です。比較的簡潔で、PHP 設定ファイルの設定によって変更できます。他の言語のタグと競合する可能性があるため、使用は推奨されません。

Stringクラスのsplit()メソッドを使用して、特定の区切り文字に基づいて文字列を分割する方法 Stringクラスのsplit()メソッドを使用して、特定の区切り文字に基づいて文字列を分割する方法 Jul 24, 2023 pm 09:32 PM

String クラスの Split() メソッドを使用して、特定の区切り文字に基づいて文字列を分割する方法 概要: Java プログラミング言語では、String クラスは非常に重要でよく使用されるクラスです。 String クラスには多くの実用的なメソッドが用意されており、その中で、split() メソッドは文字列を分割するために使用されます。 Split() メソッドは、指定された区切り文字に基づいて文字列を複数の部分文字列に分割し、これらの部分文字列を文字列配列に格納します。この記事ではStringクラスのsplitの使い方を紹介します。

JavaのStringクラスのsplit()関数を使用して、指定した区切り文字で文字列を分割する方法 JavaのStringクラスのsplit()関数を使用して、指定した区切り文字で文字列を分割する方法 Jul 25, 2023 pm 04:49 PM

JavaのStringクラスのsplit()関数を使用して、指定した区切り文字で文字列を分割する方法 Javaでは、Stringクラスは、文字列を処理および操作するための便利なメソッドを多数提供する、非常に一般的に使用されるクラスです。一般的に使用されるメソッドの 1 つは、split() 関数です。この関数は、指定された区切り文字に従って文字列を複数の部分文字列に分割できます。 Split() 関数の構文は次のとおりです。 String[]split(Stringregex) ここで、正規表現は

任意の区切り文字のペアの間の部分文字列を抽出します 任意の区切り文字のペアの間の部分文字列を抽出します Aug 26, 2023 pm 02:21 PM

区切り文字は、文字列を他の文字から区切る文字です。たとえば、日常の読書活動の文章では、異なる単語をスペースで区切ります。数学や正規表現では、() 括弧を主な区切り文字として使用します。部分文字列とその演算の概念は、プログラミング、特にコンパイラやアセンブラの作成に使用される C 言語において非常に重要です。文字列内の区切り文字を識別し、開始区切り文字の後の文字を終了区切り文字まで別の変数にコピーします。 == および != 演算子は、文字列内の文字とユーザー指定の区切り文字を比較するために使用できます。 scanf() 関数を使用してユーザーから文字列を受け入れるため、文字列の一部にスペースを含めることはできません。 Puts() または他の関数やメソッドを使用すると、次のことができます。

See all articles