Почему я должен использовать свои ключевые слова SQL? [дубликат]


Возможные Дубликаты:
есть ли веская причина использовать верхний регистр для ключевых слов T-SQL?

простой вопрос. Я лично нахожу строку строчных символов более читаемой, чем строка прописных символов. Является ли какой-то старый/популярный вкус SQL чувствительным к регистру или что-то еще?

Для справки:

select
    this.Column1,
    case when this.Column2 is null then 0 else this.Column2 end
from dbo.SomeTable this
    inner join dbo.AnotherTable another on this.id = another.id
where
    this.Price > 100

и

SELECT
    this.Column1,
    CASE WHEN this.Column2 IS NULL THEN 0 ELSE this.Column2 END
FROM dbo.SomeTable this
    INNER JOIN dbo.AnotherTable another ON this.id = another.id
WHERE
    this.Price > 100

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

16 85

16 ответов:

Я думаю, что последнее более читабельным. Вы можете легко отделить ключевые слова от имен таблиц и столбцов и т. д.

Я согласен с вами - для меня верхний регистр-это просто крик.

Я позволяю моей IDE обрабатывать ключевые слова, выделяя их с помощью подсветки синтаксиса.

редактировать, чтобы еще больше прояснить мои рассуждения:

вы бы прописные ваши ключевые слова в любом другом современном языке? Составленный пример:

USING (EditForm form = NEW EditForm()) {
    IF (form.ShowDialog() == DialogResult.OK) {
       IF ( form.EditedThing == null ) {
          THROW NEW Exception("No thing!");
       }
       RETURN form.EditedThing;
    } ELSE {
       RETURN null;
    }
}              

тьфу!

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

одну вещь я добавлю к этому, которую я еще не видел, чтобы кто-то поднял:

Если вы используете специальный SQL из языка программирования, у вас будет много SQL внутри строк. Например:

insertStatement = "INSERT INTO Customers (FirstName, LastName) VALUES ('Jane','Smith')"

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

из "стиля программирования SQL" Джо Селко (ISBN 978-0120887972):

правила:

прописные зарезервированные слова.

обоснование:

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

типографы используют этот термин bouma для форма слова. Появляется термин в книге Пола Сэнгера (1975). Воображать каждая буква на прямоугольной карточке, которая как раз приспосабливает его, так, что вы увидите восходящие, нисходящие и базовые линии буквы как различные "Лего блоки", которые они щелкнули вместе, чтобы сделать слово.

The bouma прописного слова является всегда простой, плотный прямоугольник, и легко выбрать поля нижний регистр слова.

что я нахожу убедительным, так это то, что это единственная книга о эвристике SQL, написанная известным автором работ SQL. Так это абсолютная истина? Кто знает. Это звучит достаточно разумно, и я могу, по крайней мере, указать на правило члену команды и сказать им следовать ему (и если они хотят обвинить кого-либо, я даю им адрес электронной почты Celko :)

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

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

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

Я предпочитаю строчные ключевые слова. Студия управления цветовыми кодами ключевых слов, так что нет никаких проблем отличить их от идентификаторов.

и верхний регистр ключевых слов чувствует себя так... что ж... ОСНОВНОЙ... ;)

- "Бейсик, КОБОЛ и Фортран звонили из восьмидесятых, они хотели вернуть свои прописные ключевые слова.";)

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

SELECT
  s.name,
  m.eyes,
  m.foo
FROM
  muppets m,
  muppet_shows ms,
  shows s
WHERE
  m.name = 'Gonzo' AND
  m.muppetId = ms.muppetId AND
  ms.showId = s.showId

(отсутствие ANSI-соединений является проблемой для другого вопроса.)

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

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

Я считаю, что нижний регистр легче читать и что, учитывая, что ключевые слова sql выделены синим цветом в любом случае.

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

вопрос: если мы не пишем ключевые слова c# в верхнем регистре, то почему я должен писать ключевые слова sql в верхнем регистре?

Как кто - то еще сказал-капиталы кричат!

Это просто вопрос читабельности. Помогает быстро различать ключевые слова SQL.

Кстати, этот вопрос уже был дан ответ: чувствителен ли синтаксис SQL к регистру?

Я предпочитаю использовать верхний регистр, а также для ключевых слов в SQL.

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

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

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

еще в 80-х годах я использовал для заглавной буквы имен баз данных и оставлял ключевые слова sql в нижнем регистре. Большинство авторов сделали наоборот, заглавные буквы ключевых слов SQL. В конце концов, я начал идти вместе с толпой.

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

и я не защищаю использование всех шапок для имен баз данных. На самом деле это немного похоже на "крик". И есть лучшие соглашения, такие как использование нескольких прописных букв в именах баз данных. (Под "именами баз данных" я подразумеваю имена схем, объектов схемы, таких как таблицы, и, возможно, несколько других вещей.) Только потому, что я сделал это в 80-х годах, не означает, что я должен защищать его сегодня.

наконец, "De gustibus non disputandum est".

некоторые разработчики SQL здесь любят выкладывать это так:

SELECT s.name, m.eyes, m.foo
FROM muppets m, muppet_shows ms, shows s 
WHERE m.name = 'Gonzo' AND m.muppetId = ms.muppetId AND ms.showId = s.showId

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

по поводу ничего возможно, но я предпочитаю набирать SQL ключевые слова капители. Таким образом, они выглядят заглавными для большинства читателей, но они не такие же, как уродливый стиль all CAPS.

еще одним преимуществом является то, что я могу оставить код как есть и распечатать его в традиционном стиле. (Я использую listings пакета LaTeX для печати код.)

я прописываю SQL, чтобы сделать его более "контрастным" для основного языка (в основном C# в эти дни).

Это просто вопрос предпочтения и/или традиции на самом деле...