Перейти к основному содержимому
Tooletto

Форматтер SQL со строчными ключевыми словами

Готовый вариант «Форматтер SQL»

Форматируйте запросы, сохраняя ключевые слова в нижнем регистре. Заглавные ключевые слова — более старая традиция, появившаяся в те времена, когда редакторы не имели подсветки синтаксиса; многие современные style guide теперь предпочитают везде нижний регистр.

  • Файлы никогда не покидают ваше устройство
  • Бесплатно, без регистрации
  • Без водяных знаков
  • Работает офлайн после загрузки
Loading tool…

Как пользоваться: форматтер sql

  1. 1

    Вставьте запрос

    Одну длинную строку или что-то уже частично отформатированное.

  2. 2

    Настройте параметры

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

  3. 3

    Скопируйте результат

    Готово для вставки обратно в редактор или миграцию.

Почему заглавные ключевые слова изначально стали традицией

Написание ключевых слов SQL заглавными восходит к временам, когда в редакторах кода вообще не было подсветки синтаксиса, и визуально отличить `SELECT` и `WHERE` от окружающих их имён таблиц и столбцов можно было, только вручную набирая их в другом регистре, — это была замена цветовому выделению, которое современный редактор теперь предоставляет автоматически. Поскольку практически каждый современный редактор и IDE подсвечивает ключевые слова SQL цветом независимо от их регистра, изначальное обоснование в основном исчезло, и ряд современных style guide теперь рекомендует везде нижний регистр по более простой причине: печатать так быстрее, и не приходится мысленно переключаться между регистрами во время написания запроса.

Соответствие тому, что уже принято в конкретной команде или проекте

Правильный регистр для ключевых слов в конечном счёте определяется тем, что уже используется в существующей кодовой базе или style guide конкретного проекта, а не является объективно правильным выбором — фактическое поведение запроса одинаково в любом случае. Этот пресет существует именно для команд и людей, уже остановившихся на нижнем регистре, чтобы отформатированный запрос соответствовал преобладающему стилю окружающей кодовой базы, а не вносил резко выделяющийся по регистру запрос в файл, где все остальные запросы написаны строчными буквами.

Последовательность важнее, чем то, какая традиция победит

Реальная цена смешанного регистра ключевых слов внутри одной кодовой базы не техническая — SQL всё равно, — это небольшое, но накапливающееся трение: внимание рецензента цепляется за несоответствие каждый раз, когда он читает запрос, и это складывается в команде, просматривающей десятки запросов в неделю. Выбор одной традиции — строчной или заглавной — и её последовательное применение и даёт реальную пользу для читаемости; этот пресет делает нижний регистр механическим значением по умолчанию, чтобы никому не приходилось вручную перепечатывать ключевые слова под выбранный командой стиль.

Часто задаваемые вопросы

Изменится ли поведение моего запроса?

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

Что происходит с текстом внутри кавычек?

Он остаётся точно таким, как написан. Форматтер разбивает запрос на токены перед тем, как что-либо трогать, поэтому строка вроде 'check the order from stock' сохраняет свои «order» и «from» в нижнем регистре, а не получает их заглавными, как если бы это были ключевые слова. Форматтеры на основе регулярных выражений регулярно ошибаются именно здесь.

Какие диалекты SQL поддерживаются?

Общая структура разделов, которую разделяют PostgreSQL, MySQL, SQL Server, SQLite и Oracle. Инструмент форматирует, а не разбирает запрос по грамматике, поэтому специфичный для диалекта синтаксис проходит без изменений вместо того, чтобы вызвать ошибку, — но и особые отступы для него тоже не применяются.

Отправляются ли мои запросы куда-либо?

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