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

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

206
задан OMG Ponies 23 February 2010 в 19:51
поделиться

3 ответа

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

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

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

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

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

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

.
141
ответ дан 23 November 2019 в 04:49
поделиться

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

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

Смотрите также:

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

SET GLOBAL SQL_MODE=ANSI_QUOTES

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

SET QUOTED_IDENTIFIER ON
63
ответ дан 23 November 2019 в 04:49
поделиться

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

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

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

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

Таким образом, это немного специфично для производителя.

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

.
35
ответ дан 23 November 2019 в 04:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: