Форматирование и минификация SQL - прочитать длинный запрос
Форматирование и минификация SQL
Форматирование SQL - частые вопросы
Самые популярные форматировщики
За всё времяЧто делает этот инструмент
Запрос, который нужно понять, редко бывает вашим. Он пришёл из лога, из ORM, из сообщения коллеги: одна строка, четыре join и where, у которого не найти конца. Эта страница раскладывает его по строкам, чтобы стала видна форма, и снова собирает в одну, когда его должно прочитать что-то другое.
Как пользоваться
- 1 Вставьте запрос: один оператор или целый скрипт.
- 2 Выберите отступ и нажмите «Форматировать» или «Минифицировать».
- 3 Текст меняется в том же поле: скопируйте его или нажмите «Отменить».
Однострочный комментарий становится опасным там, где строк нет
Комментарий «--» действует до конца строки. Минификация убирает переносы, поэтому оставленный комментарий проглотил бы всё, что идёт следом: запрос по-прежнему выполняется, просто молча обрывается на середине. Поэтому минификация здесь полностью вырезает строчные комментарии - и поэтому «--» внутри строки остаётся ровно на месте: там это данные, а не комментарий.
Кавычки и удвоенные кавычки
В SQL кавычка внутри строки экранируется удвоением: 'O''Brien'. Инструмент, закрывающий строку на второй кавычке, читает остаток имени как код, и дальше каждое найденное им ключевое слово - выдумка. То же и с экранированными именами: `order`, "group", [limit] это имена, а ключевое слово внутри имени - не ключевое слово.
Он никогда не переписывает ваш запрос
Ключевые слова не переводятся в верхний регистр, скобки не упрощаются, псевдонимы не переименовываются. Двигаются только пробелы. Это важно, потому что отформатированный запрос обычно возвращается в файл, который просматривает команда: diff, полный смен регистра, прячет ту единственную строку, которая действительно изменилась, а ключевые слова в нижнем регистре - это стиль команды, а не ошибка.
Форматировать не значит проверять
Эта страница никогда не подключается к базе данных, поэтому не может знать, существует ли таблица, верен ли ваш join и не окажется ли запрос медленным. Она читает текст и двигает пробелы. Что она действительно даёт - это форму; а запрос, форму которого видно, это запрос, о котором можно рассуждать.