Нижний или верхний регистр для операторов SQL - PullRequest
7 голосов
/ 27 сентября 2011

Есть ли принципиальная разница между этими утверждениями

"select * from users where id = 1"
ИЛИ
"SELECT* FROM users WHERE id = 1"
ИЛИ
'select * from users where id = 1'
ИЛИ
'SELECT * FROM users WHERE id = 1'

Мне просто интересно ... Я всегда использовал 2-й метод, но некоторые коллеги обязаны использовать другие методы.Что является наиболее распространенным соглашением?

Ответы [ 4 ]

8 голосов
/ 27 сентября 2011

У вас есть две отдельные проблемы:

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

  2. Как процитировать SQL на вашем языке хоста. Поскольку строки заключаются в кавычки одинарные (') в SQL, я предлагаю вам использовать двойные кавычки (") для кавычек операторов SQL из вашего основного языка (или тройных кавычек ("""), если Ваш принимающий язык Python). SQL использует двойные кавычки, но только для имен таблиц, столбцов и функций, которые содержат специальные символы, которые обычно можно избежать.

    В C / C ++ есть третий вариант цитирования. Если ваш компилятор поддерживает переменные макросы (представленные в C99), вы можете определить:

    #define SQL(...) #__VA_ARGS__
    

    и использовать SQL как SQL(SELECT * FROM users WHERE id = 1). Преимущество состоит в том, что таким образом строка может занимать несколько строк, в то время как строки в кавычках должны иметь каждую строку в кавычках отдельно. Тройные кавычки в python служат той же цели.

3 голосов
/ 27 сентября 2011

Нет разницы в том, как это будет работать, но обычно я ставлю ключевые слова SQL в верхнем регистре, так что это будет:

SELECT * FROM users WHERE id = 1
1 голос
/ 27 сентября 2011

Нет.

Разницы нет.Это все о ваших привычках.

Это все равно что спросить, есть ли различия между этими блоками кода в C ++:

int main() {

}

ИЛИ

int
main()
{

}

ИЛИ

int main()
{

}

В любом случае, наиболее распространенный способ написания операторов SQL - это ввод ключевых слов в UPPERCASE.

1 голос
/ 27 сентября 2011

Между вышеупомянутыми нет принципиальной разницы. Однако официальные стандарты SQL вплоть до самой последней версии SQL: 2008 всегда использовали верхний регистр для различения полей от операторов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...