28

かっこは、SQL ステートメントで何をしますか?

たとえば、ステートメントでは次のようになります。

table1 ([columnname1], columnname2) 値 (val1, val2) に挿入します

また、テーブル名が括弧で囲まれている場合はどうなりますか?

4

8 に答える 8

45

[] は識別子の区切りを示すため、Order Qty のように名前にスペースが含まれる列がある場合は、次のように [] で囲む必要があります。

select [Order qty] from [Client sales]

また、識別子として使用される予約済みキーワードをエスケープするためのものでもあります

于 2008-09-30T16:32:06.380 に答える
14

これは、Microsoft SQL Server の「区切り識別子」の非標準構文です。SQL は識別子の区切り記号をサポートしており、テーブル名、列名、またはその他のメタデータ オブジェクトに以下を含めることができます。

  • SQL 予約語: "Order"
  • スペースを含む単語: "注文数量"
  • 句読点を含む単語: 「注文数量」
  • 国際文字を含む単語
  • 大文字と小文字が区別される列名: "Order" と "order"

Microsoft SQL Server は角かっこを使用しますが、これは SQL が区切り識別子に使用する標準の構文ではありません。通常、区切り文字には二重引用符を使用する必要があります。

Microsoft SQL Server では、次のように区切り文字に標準の二重引用符を使用するモードを有効にすることができます。

SET QUOTED_IDENTIFIER ON;
于 2008-09-30T18:49:55.347 に答える
6

これらは、予約済みのキーワードまたは無効な列識別子をエスケープするためのものです。

CREATE TABLE test
(
  [select] varchar(15)
)

INSERT INTO test VALUES('abc')

SELECT [select] FROM test
于 2008-09-30T16:32:05.007 に答える
3

列、テーブルなどの名前にキーワード( dateなど)を使用できます...

これはそもそも悪い習慣であるため、通常は含まれません。それらが使用されているのを目にする唯一の場所は、SQL クエリを使い始めたばかりで、よくわからない人です。それ以外は、クエリを混乱させるだけです。

于 2008-09-30T16:40:36.767 に答える
2

括弧内はすべて単一の識別子と見なされます ([test machine] など)。名前をスペースで囲んだり、予約語をエスケープしたりするために使用できます ([order]、[select]、[group] など)。

于 2008-09-30T16:34:25.237 に答える
1

SQLの予約済みキーワードと同じ列名を使用する場合、その場合、カスタム列名と既存の予約済みキーワードを区別するために列名を角括弧で囲むことができます。

于 2013-03-12T19:51:08.693 に答える
0

それらは、列またはテーブル名に特殊文字 (スペースなど) を入れることを可能にする単純な区切り記号です。

insert into [Table One] ([Column Name 1], columnname2) values (val1, val2)
于 2008-09-30T16:33:22.163 に答える