В чем разница между одинарными и двойными кавычками в SQL?

в чем разница между одинарными и двойными кавычками в SQL?

5 ответов


одинарные кавычки используются для обозначения начала и конца строки в SQL. Двойные кавычки обычно не используются в SQL, но могут варьироваться от базы данных к базе данных.

придерживайтесь использования одинарных кавычек.

это основное использование в любом случае. Вы можете использовать одинарные кавычки для псевдонима столбца-где вы хотите, чтобы имя столбца, на которое вы ссылаетесь в коде приложения, было чем-то иным, чем то, что столбец фактически называется в базе данных. Например: PRODUCT.id будет быть более читаемым как product_id, поэтому вы используете одно из следующих действий:

  • SELECT PRODUCT.id AS product_id
  • SELECT PRODUCT.id 'product_id'

либо работает в Oracle, SQL Server, MySQL... но я знаю, что некоторые сказали, что жаба IDE, похоже, дает некоторое горе при использовании подхода с одинарными кавычками.

вы должны использовать одинарные кавычки, когда псевдоним столбца включает пробел, например,product id, но не рекомендуется использовать псевдоним столбца более одного слово.


одинарные кавычки разделяют строковую константу или константу даты/времени.

двойные кавычки разделяют идентификаторы, например, для имен таблиц или столбцов. Это обычно необходимо только в том случае, если Ваш идентификатор не соответствует правилам для простых идентификаторов.

Читайте также:

Вы можете заставить MySQL использовать двойные кавычки на ANSI стандарт:

SET GLOBAL SQL_MODE=ANSI_QUOTES

Вы можете заставить Microsoft SQL Server использовать двойные кавычки для стандарта ANSI:

SET QUOTED_IDENTIFIER ON

  • [S]ingle кавычки для [S]trings ; [D] ouble котировки для [D]идентификаторы atabase;
  • на ` символ такой же, как " символ. Вы можете использовать " С включенным ANSI_QUOTES.

в ANSI SQL двойные кавычки цитируют имена объектов (например, таблицы), которые позволяют им содержать символы, не разрешенные иначе, или быть такими же, как зарезервированные слова (избегайте этого, действительно).

одинарные кавычки для строк.

однако MySQL не обращает внимания на стандарт (если его SQL_MODE не изменен) и позволяет использовать их взаимозаменяемо для строк.

кроме того, Sybase и Microsoft также используют квадратные скобки для идентификатора цитирование.

Так что это немного специфичный поставщик.

другие базы данных, такие как Postgres и IBM, фактически придерживаются стандарта ansi:)


Я использую эту мнемонику:

  • одинарные кавычки для строк (одно)
  • двойные кавычки для имен таблиц и имен столбцов (две вещи)

Это не 100% правильно согласно спецификациям, но эта мнемоника помогает мне (человеку).