Какие веские причины существуют для того, чтобы использовать заглавные буквы SQL?


28

Кажется, есть много разработчиков, которые пишут свои SQL, используя заглавные буквы:

SELECT column
FROM table
     INNER JOIN table
     ON condition
WHERE condition
GROUP BY clause
HAVING condition

Мне интересно, почему люди придерживаются такого подхода? Ясно, что это давно установленное соглашение - но я никогда не сталкивался с СУБД, которая требует капитализации.

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

Тем не менее, достаточно людей используют это соглашение, и я полагаю, что я что-то упускаю, отсюда и этот вопрос.


3
Приятно, что ключевые слова выделяются больше, даже если ваша IDE делает текст ключевого слова другим цветом.
Человек

3
Единственный способ справиться с наличием языка в языке - SHOUTэто команды в интерпретаторе SQL ...
Бен ДеМотт

Мой вопрос тоже. +1
Саид Нимати

Прописывая ключевые слова SQL, я могу понять. Большинство табличных объявлений и запросов, которые я вижу, пишутся с заглавной буквы ВСЕ, включая имена таблиц и столбцы
MPelletier

Ответы:


22

Использование заглавных букв выделяет их в отличие от других символов в окне запроса.

Причина, по которой я этого не делаю, потому что это огромная трата времени. Вы можете сделать одну из двух вещей:

1) Удерживайте нажатой клавишу Shift при наборе слова : слишком подвержен ошибкам и просто случайно.

2) Наденьте заглавные буквы на время слова : слишком много времени.

Я использую SQL Server, и среда (SSMS) имеет отличную подсветку синтаксиса, поэтому я не считаю, что капитализация ключевых слов сегодня так распространена, как раньше (если вообще).

Это хорошая практика в книгах и онлайн-учебниках, поэтому очевидно, что зарезервированные ключевые слова. Это просто одна из тех неписаных вещей.


20
@dave, но в отличие от кода приложения, сценарии SQL, скорее всего, будут просматриваться в редакторе без выделения синтаксиса.
Ааронаут

8
@dave: SQL-скрипты полностью автономны и почти всегда отправляются по электронной почте, вводятся в текстовые области, распечатываются для аудиторов или вводятся в утилиты командной строки, такие как SQL * Plus. Речь идет не о вашей среде, а о времени жизни SQL-сценариев вне этой среды - то, что на самом деле не имеет отношения к исходному коду приложения, поскольку не имеет реального применения вне компилятора / IDE.
Аарона

6
Операторы SQL часто появляются в файлах журналов, сообщениях об ошибках, встраиваются в документы XML и во все виды мест, где подсветка синтаксиса недоступна, поэтому всегда приветствуется любое форматирование, облегчающее чтение.
Джеймс Андерсон

8
-1 если удерживать нажатой клавишу shift или нажать кнопку caps lock слишком много, я думаю, что есть другие проблемы. И сколько именно эти 0,25 секунды вы сэкономили на самом деле влияет на что-нибудь?
TheLQ

2
Мой ответ на ваш вопрос - другой вопрос: вы ежедневно пишете код SQL? И умножьте 0,25 секунды на количество кода, который пишет разработчик SQL / dba ...

8

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

Я не знаю, имеет ли это отношение к тому, как появился стандарт. Но это мой личный опыт.


7

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

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


4
Я недавно был выставлен на людей , которые на самом деле делают обратное соглашение, спекулируя имена объектов и оставляя ключевые слова в нижнем регистре; это неприятно, если не сказать больше.
Ааронаут

6

SQL - это язык, ориентированный на предложения, гораздо больше, чем все остальное, что я испытал У вас есть предложение SELECT, предложение FROM, предложение (я) JOIN и предложение WHERE. ORDER BY, GROUP BY и т. Д. И т. Д.

Использование этих ключевых слов с заглавной буквы помогает визуально разделить отдельные пункты. Это особенно удобно, когда в одной из тех хитрых ситуаций отладки вы выводите SQL в HTML-комментарии, а затем копируете их в консоль. Противно, но мы все были там. Хорошо иметь некоторую помощь, чтобы увидеть, где начинается каждая часть утверждения.


2

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

Как уже указывалось, в старых IDE у вас не было много вариантов, кроме корпуса для дифференциации текста. Как вы указали, выделение ключевых слов отвлекает ваше внимание от того, где оно должно быть. Проблема в том, что вы знаете, что ключевые слова всегда могут быть написаны заглавными буквами, тогда как другие вещи могут содержать литералы и идентификаторы, которые чувствительны к регистру. Это приводит к тому, что путь наименьшего сопротивления состоит в том, чтобы просто использовать ключевые слова.


-1

В моем случае я предпочитаю использовать заглавные буквы независимо от подсветки синтаксиса. Представьте, что у вас нет подходящего редактора SQL, и вам нужно писать / редактировать или открывать свои скрипты в Блокноте или WordPad. Эти редакторы не имеют подсветки синтаксиса.

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


Это должен был быть комментарий, но у вас нет репутации, чтобы оставлять сообщения ...
Адам Цукерман

Я рассмотрел это в первоначальном вопросе - использование ЗАГЛАВНЫХ букв для ключевых слов привлекает внимание читателей к наименее важной части запроса или утверждения.
Беван
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.