2008-10-18 19 views

ответ

31

Это использование кавычек называется разделительными идентификаторами. Это важная часть SQL, так как в противном случае вы не можете использовать идентификаторы (например, имена таблиц и имена столбцов), что:

  • Включить пробела: «мой стол»
  • Включить специальные символы и знаки препинания: «мой стол "
  • Включить международные символы: "私 の テ ー ブ ル"
  • чувствительны к регистру: "MyTable"
  • Match SQL ключевые слова: "таблица"

Стандарт языка SQL использует двойные кавычки для идентификаторов с разделителями:

SELECT * FROM "my table"; 

MySQL использует обратные кавычки по умолчанию. MySQL может использовать стандартные двойные кавычки:

SELECT * FROM `my table`; 
SET GLOBAL SQL_MODE=ANSI_QUOTES; 
SELECT * FROM "my table"; 

Microsoft SQL Server по умолчанию использует скобки. Microsoft может использовать стандартные двойные кавычки:

SELECT * FROM [my table]; 
SET QUOTED_IDENTIFIER ON; 
SELECT * FROM "my table"; 

InterBase и Firebird необходимо установить SQL диалект до 3 поддерживать идентификаторы с ограничителями.

Большинство других марок базы данных используют двойные кавычки правильно.

+0

Я пытаюсь отформатировать обратные тики в соответствии с синтаксисом уценки, но я не могу понять, что это правильно. – 2008-10-18 01:27:48

2

использует SQL Server [квадратные скобки] или«двойные quotes ", когда опция QUOTED_IDENTIFIER включена.

Я считаю, что двойные кавычки находятся в стандарте SQL-92.

2

Кратко, да.

Стандарт SQL использует двойные кавычки вокруг имени, чтобы указать «разделительный идентификатор».

Informix по умолчанию использует одиночные и двойные кавычки взаимозаменяемо, чтобы указать символьные строки. Однако, установив переменную среды DELIMIDENT, вы можете включить стандартное поведение SQL - одинарные кавычки вокруг строк и двойные кавычки вокруг идентификаторов с разделителями.

Другие люди указали другие типы поведения для других СУБД; Мне не нужно повторять это.

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