Как форматировать SQL-запросы

· 3 мин чтения

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

Почему важно форматирование

Как форматировать SQL

  1. Вставьте ваш SQL — введите минифицированный или беспорядочный запрос в форматтер. Он обрабатывает SELECT, INSERT, UPDATE, DELETE, CREATE TABLE, а также сложные запросы с подзапросами и соединениями.
  2. Настройте опции — выберите размер отступа и должны ли ключевые слова быть в верхнем регистре. Эти настройки соответствуют руководству по стилю вашего проекта.
  3. Скопируйте результат — отформатированный SQL готов к повторной вставке в ваш редактор, клиент базы данных или документацию.

Как выглядит хорошее форматирование

Запрос вроде select u.name, o.total from users u join orders o on u.id = o.user_id where o.total > 100 and u.active = 1 order by o.total desc становится:

SELECT
  u.name,
  o.total
FROM users u
JOIN orders o
  ON u.id = o.user_id
WHERE o.total > 100
  AND u.active = 1
ORDER BY o.total DESC

Каждое предложение начинается на своей строке. Условия с отступом под их родительским предложением. Соединения и их условия ON чётко сопряжены.

Советы

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

Нужно ли писать SQL-ключевые слова в верхнем регистре?

Это широко соблюдаемое соглашение писать SQL-ключевые слова в верхнем регистре (SELECT, FROM, WHERE) и имена таблиц или столбцов в нижнем регистре. Это делает запросы более легко читаемыми визуально. Большинство руководств по стилю рекомендуют это, но ни один движок базы данных не требует этого.

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

Нет. Пробелы и отступ не имеют никакого эффекта на выполнение SQL. Форматирование чисто для человеческой читаемости. Минифицированный запрос и отступленный производят одинаковый результат.

Какой размер отступа использовать?

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

Отправляется ли мой SQL на сервер?

Нет. Форматирование происходит полностью в вашем браузере. Ваши запросы никогда не покидают ваше устройство.