Разные базы данных используют разные кавычки?
Например, имя таблицы цитирования mysql, используя
SELECT * FROM `table_name`;
обратите внимание на `
Использует ли другая база данных когда-либо другой символ для цитирования имени таблицы
3 ответа
Такое использование кавычек называется идентификаторами с разделителями. Это важная часть SQL, потому что иначе вы не можете использовать идентификаторы (например, имена таблиц и столбцов), которые:
- Включить пробел: "моя таблица"
- Включите специальные символы и знаки препинания: "моя таблица"
- Включите международные символы: "私のテーブル"
- Чувствительны к регистру: "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 для поддержки идентификаторов с разделителями.
Большинство других брендов базы данных используют двойные кавычки правильно.
SQL Server использует [квадратные скобки] или "двойные кавычки", когда опция QUOTED_IDENTIFIER включена.
Я считаю, что двойные кавычки в стандарте SQL-92.
Кратко да.
Стандарт SQL использует двойные кавычки вокруг имени для обозначения "идентификатора с разделителями".
Informix по умолчанию использует одинарные и двойные кавычки взаимозаменяемо для обозначения символьных строк. Однако, установив переменную среды DELIMIDENT, вы можете включить стандартное поведение SQL - одинарные кавычки вокруг строк и двойные кавычки вокруг идентификаторов с разделителями.
Другие люди перечислили другие поведения для других СУБД; Мне не нужно повторять это.