2012-03-23 3 views
-3

Я видел оба используемых, но я не могу понять, когда их использовать.В чем разница в [] и() в SQL?

Мне кажется, что вы вводите имя таблицы, в которой вы ссылаетесь, в() и имени поля в []?

Может ли кто-нибудь объяснить?

+2

Вы должны прочитать учебник где-нибудь о SQL ... –

+1

'[]' это нестандартный способ цитирования имен, содержащих специальные символы. Вы должны избегать их использования (потому что это означает, что вы используете специальные символы в своих именах, что не очень хорошо) –

+0

@a_horse_with_no_name: Следует избегать использования их в производственном коде. Они чрезвычайно полезны при тестировании, например. чтобы возвращать имена столбцов, значимые для читателя, но никогда не одобряли словарь данных предприятия :) – onedaywhen

ответ

2

В изделиях Microsoft используются квадратные скобки, чтобы указать, что то, что внутри них, является идентификатором (стандартными котируемыми идентификаторами являются двойные кавычки " ", что также поддерживает Microsoft SQL Sever). Это используется, когда у вас есть имя базы данных, имя пользователя, имя таблицы, имя поля, имя представления, имя процедуры (et.c.), которая бывает такой же, как ключевое слово, или содержит символы, которые нарушают синтаксис. Это часто используется в сгенерированном коде для защиты от идентификаторов, которые иначе не могут использоваться в коде. Сгенерированный запрос может выглядеть следующим образом:

select [Id], [Name], [Password hint] 
from [dbo].[MyDataBase].[User] 

Здесь имя поля Password hint нарушило бы синтаксис, если они используются без скобок, а имя таблицы User может вступать в противоречие с ключевым словом User.

Скобки используются для группировки элементов, например, как часть синтаксиса некоторых положений, например вставку:

insert into someTable (field1, field2) values ('value1', 'value2') 

Они также могут быть использованы в выражениях:

select Price * (Quantity + FreeItems) from Articles 

Они также может использоваться вокруг запросов для создания подзапросов:

select o.Name 
from (select Name, Age from Persons where City = 'Oslo') as o 
where o.Age > 18 
0

() используются для передачи параметров в функции и сохраненные процедуры и т. Д. [] Используются для инкапсуляции имени поля (и т. Д.), Которые включают пунктуацию (пробелы и специальные символы в соответствии с вышеприведенным комментарием). [] полезны иногда для обозначения полей для отображения

SELECT FFgg AS [Some field discription] FROM table1; 

Надеюсь, это поможет.

Смежные вопросы