Разные базы данных используют разные кавычки? - PullRequest
22 голосов
/ 18 октября 2008

Например, имя таблицы котировок mysql с использованием

SELECT * FROM `table_name`;

обратите внимание на `

Использует ли другая база данных когда-либо другой символ для цитирования имени таблицы

Ответы [ 3 ]

32 голосов
/ 18 октября 2008

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

  • Включить пробел: "мой стол"
  • Включает специальные символы и знаки препинания: "my-table"
  • Включите международные символы: "私 の テ ー ブ ル"
  • С учетом регистра: «MyTable»
  • Соответствует ключевым словам 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 для поддержки идентификаторов с разделителями.

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

2 голосов
/ 18 октября 2008

Кратко, да.

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

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

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

2 голосов
/ 18 октября 2008

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...