Ответы:
Одинарные кавычки используются для обозначения начала и конца строки в SQL. Двойные кавычки обычно не используются в SQL, но они могут варьироваться в зависимости от базы данных.
Придерживайтесь использования одинарных кавычек.
В любом случае, это основное использование. Вы можете использовать одинарные кавычки для псевдонима столбца - где вы хотите, чтобы имя столбца, на которое вы ссылаетесь в коде своего приложения, отличалось от того, что столбец фактически называется в базе данных. Например: PRODUCT.idбудет более читабельным product_id, так что вы используете одно из следующих:
SELECT PRODUCT.id AS product_idSELECT PRODUCT.id 'product_id'Либо работает в Oracle, SQL Server, MySQL ... но я знаю, что некоторые говорили, что TOAD IDE, кажется, дает некоторое горе при использовании подхода одинарных кавычек.
Вы должны использовать одинарные кавычки, когда псевдоним столбца содержит, например, символ пробела product id, но не рекомендуется, чтобы псевдоним столбца был больше одного слова.
SELECT * FROM USERS 'Users'не работает в SQL Server, но SELECT * FROM USERS "Users"работает.
SELECT PRODUCT.id 'product_id'не будет работать в Oracle. Одинарные кавычки предназначены только для символьных литералов. Они не могут использоваться для идентификаторов в (стандартном) SQL (хотя некоторые СУБД просто игнорируют стандарт SQL, когда дело доходит до цитируемых идентификаторов)
Простое правило для нас, чтобы помнить, что использовать в этом случае:
В MySQL и MariaDB, то ` (кавычка) символ такой же , как « символ. Вы можете использовать » , когда ваш SQL_MODEбыл 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 :)
Разница заключается в их использовании. Одинарные кавычки в основном используются для ссылки на строки в 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.