Форматирование SQL
Превратите запутанный SQL в чистые, читаемые запросы.
Работает в браузере. То, что вы вводите, никуда не отправляется.
- 6 диалектов SQL
- Верхний или нижний регистр слов
- Ничего не загружается
Как форматировать SQL
- Вставьте свой SQL-запрос.
- Выберите диалект, регистр ключевых слов и размер отступа.
- Скопируйте или скачайте отформатированный SQL.
Различия диалектов, которые здесь учитываются
| Диалект | Особенность, которая учитывается |
|---|---|
| MySQL | Идентификаторы в обратных кавычках |
| PostgreSQL | Идентификаторы в двойных кавычках и приведение типов :: |
| SQL Server | Идентификаторы в квадратных скобках и TOP вместо LIMIT |
| SQLite | Более гибкие правила кавычек |
| BigQuery | Пути к таблицам в обратных кавычках вроде project.dataset.table |
| Стандартный SQL | Идентификаторы в двойных кавычках в стиле ANSI, целевой вариант по умолчанию |
Что меняет форматирование, а что оставляет как есть
- Меняет: регистр ключевых слов, отступы условий и join, а также где ставятся переносы строк перед SELECT, FROM, WHERE и JOIN.
- Оставляет как есть: имена таблиц и столбцов, содержимое строковых литералов и любые комментарии в запросе.
- Комментарии, написанные через -- или обёрнутые в /* */, остаются точно на своих местах, привязанные к той же строке или блоку.
Советы по форматированию SQL
- Вставляйте несколько инструкций через точку с запятой, и каждая отформатируется на своём месте.
- Выбирайте диалект, на котором реально работает ваша база данных, чтобы кавычки идентификаторов в результате совпадали с тем, что ожидает ваш сервер.
- Если стиль кавычек диалекта вызывает ошибку в вашей базе данных, попробуйте стандартный SQL и подправьте идентификаторы вручную.
- Больший размер отступа может облегчить чтение длинного запроса с множеством join, ведь каждый уровень вложенности заметнее выделяется.
Частые вопросы о Форматирование SQL
Какие диалекты SQL поддерживаются?
Стандартный SQL, MySQL, PostgreSQL, SQL Server, SQLite и BigQuery. Каждый из них немного по-своему обрабатывает кавычки и функции.
Это проверяет, корректен ли мой SQL?
Нет. Это переформатирует запрос для читаемости. Оно не подключается к базе данных и не проверяет имена таблиц и столбцов.
Можно форматировать сразу целый файл с запросами?
Да. Вставьте несколько инструкций, разделённых точкой с запятой, и каждая отформатируется на своём месте.
Что задаёт размер отступа?
Он задаёт, сколько пробелов получает каждый уровень вложенности, от 2 для компактных запросов до 8 для глубоко вложенных join и подзапросов.
Мой SQL куда-то загружается?
Нет. Форматирование происходит в браузере, поэтому ваши запросы и любые данные в них остаются на вашем устройстве.
Форматирование меняет порядок в запросе?
Нет. Условия, join и подзапросы остаются в том порядке, в котором вы их написали. Меняются только отступы, переносы строк и регистр ключевых слов.
Можно форматировать хранимые процедуры или скрипты с переменными?
Обычные инструкции SELECT, INSERT, UPDATE и DELETE форматируются хорошо. Специфичный для диалекта процедурный синтаксис, вроде управления потоком в T-SQL или блоков PL/pgSQL, может отступать не так аккуратно, ведь форматировщик нацелен на стандартный синтаксис запросов.
Обрабатываются ли CTE (конструкции WITH) и оконные функции?
Да. Общие табличные выражения и оконные функции форматируются так же, как любой другой синтаксис, который понимает библиотека sql-formatter, включая их собственные отступы.