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

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

7 ответов

Решение

Одинарные кавычки используются для обозначения начала и конца строки в 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, но не рекомендуется, чтобы псевдоним столбца составлял более одного слова.

Два простых правила для нас, чтобы помнить, что использовать в этом случае:

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

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

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

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

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

SET GLOBAL SQL_MODE=ANSI_QUOTES

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

SET QUOTED_IDENTIFIER ON

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

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

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

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

Так что это немного зависит от поставщика.

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

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

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

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

Следует помнить две вещи:

Одиночные цитаты ('): строка или текст

      select * from employees where room_name = 'RobinCapRed';

где RobinCapRed - строка или текст .

Двойные кавычки ("): имена столбцов или таблиц.

      select "first_name" from "employees";

где first_Name - имя столбца из таблицы сотрудников

Разница заключается в их использовании. Одинарные кавычки в основном используются для ссылки на строки в WHERE, HAVING, а также в некоторых встроенных функциях SQL, таких как CONCAT, STRPOS, POSITION и т. Д.

Если вы хотите использовать псевдоним с пробелом между ними, вы можете использовать двойные кавычки для ссылки на этот псевдоним.

Например

(select account_id,count(*) "count of" from orders group by 1)sub 

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

Теперь давайте напишем внешний запрос для отображения строк, в которых "count" больше 20.

select "count of" from 
(select account_id,count(*) "count of" from orders group by 1)sub where "count of" >20;

Вы можете применить тот же случай к выражениям Common Table также.

Другие вопросы по тегам