SQL-форматтер и минификатор – Полная документация, лучшие практики и интеграции
Zerlo SQL-Formatter & Minifier делает SQL мгновенно читаемым (Beautify) или компактным (Minify). Вы управляете Indent (2/4/8 пробелов), Keyword-Case (UPPER/lower/Preserve) и в разделе Advanced удаление комментариев, а также принудительное добавление точки с запятой. Через Быстрый доступ доступны примеры сниппетов, и с помощью Self-Test вы проверяете поведение за секунды. Страница доступна здесь: zerlo.net/formattersql.
Содержание
- Быстрый старт
- Функции обзора
- Примеры быстрого доступа (случаи использования)
- Расширенные параметры (детали и подводные камни)
- Типичные категории применений (12 сценариев)
- Интеграция: веб-сайт, iFrame, Teams
- Опциональное JSON-API (с примерами)
- Самопроверка (пошагово)
- Профессиональные советы, производительность и безопасность
- Указания по диалектам и ограничения
- Устранение неполадок и FAQ
- Попробовать сейчас
1) Быстрый старт
- Откройте zerlo.net/formattersql.
- Вставь слева свой SQL или набери его.
- Выберите режим Режим: Улучшение читаемости (читабельно) или Минификация (компактно).
- Установите Отступ (2/4/8) и Регистр ключевых слов (UPPER/lower/Preserve) включить..
- Необязательное: Удаление комментариев, Принудительно ставить точку с запятой.
- Нажмите Форматировать – – результат появляется справа, включая Копировать и Сохранить как .sql.
- Под Самопроверка ты можешь автоматически проверить основные правила..
2) Функции обзора
- Улучшение читаемости:: Переносы строк и отступы для
SELECT,FROM,JOIN,WHERE,GROUP BY,HAVING,ORDER BY,LIMIT,UNION,WITH,CASE… - Минификация:: Удаляет лишние пробелы; идеально для переноса/встраивания. Необязательно с удалением комментариев.
- Регистр ключевых слов:: UPPER, lower или Preserve (Строки/идентификаторы остаются без изменений).
- Профиль отступа:: 2, 4 или 8 Spaces – во всей команде единообразно..
- Дополнительно:: Удаление комментариев (однострочные/многострочные) & Принудительно ставить точку с запятой.
- Быстрый доступ:: Заданные примеры: простые
SELECT, JOIN с агрегатом, CASE и подзапрос, CTE + оконные функции, INSERT … RETURNING, UPDATE с CASE, DELETE + EXISTS. - Самопроверка:: 1-Klick-Verifikation: Правила Beautify, поведение Minify, смена отступов, регистр ключевых слов, точка с запятой.
- Практические кнопки:: Форматировать, JSON-API (POST) здесь протестировать, Копировать, Сохранить как .sql.
- Выводы:: Панель результатов, Самопроверка, -панель,.
3) Примеры быстрого доступа (случаи использования)
Эти примеры охватывают наиболее распространённые шаблоны и идеальны в качестве отправной точки.
SELECT id, name FROM products WHERE status = 'active';
SELECT c.id, c.title, COUNT(p.id) AS products
FROM categories c
LEFT JOIN products p ON p.category_id = c.id
GROUP BY c.id, c.title
ORDER BY products DESC;
SELECT u.id, u.email,
CASE
WHEN o.total >= 1000 THEN 'gold'
WHEN o.total >= 200 THEN 'silver'
ELSE 'bronze'
END AS tier
FROM users u
LEFT JOIN LATERAL (
SELECT SUM(total) AS total
FROM orders
WHERE user_id = u.id
) o ON TRUE;
WITH ranked AS (
SELECT id, customer_id, total,
ROW_NUMBER() OVER (PARTITION BY customer_id ORDER BY total DESC) AS rn
FROM orders
)
SELECT * FROM ranked WHERE rn = 1;
INSERT INTO users(email, role)
VALUES ('[email protected]', 'editor')
RETURNING id, email;
UPDATE accounts
SET status = CASE
WHEN balance < 0 THEN 'overdue'
WHEN balance = 0 THEN 'zero'
ELSE 'ok'
END
WHERE active = 1;
DELETE FROM sessions s
WHERE EXISTS (
SELECT 1 FROM users u
WHERE u.id = s.user_id AND u.deleted_at IS NOT NULL
);
4) Расширенные параметры (детали и подводные камни)
- Удаление комментариев:: Удаляет
-- ...и/* ... */. Хорошо для «чистого» переноса (CI, внедрение). Внимание: комментарии документации теряются – перед этим возможно извлечь/архивировать. - Принудительно ставить точку с запятой:: Добавляет
;, если в конце его нет — предотвращает ошибки парсера в скриптах. Если уже существует;, дублирование не происходит.
5) Типичные категории применения (12 сценариев)
- Code-ревью:: Единообразный макет ускоряет обзоры и предотвращает споры по стилю.
- Отладка:: Сложные
JOIN/CASEсразу становятся наглядными. - Обмен знаниями:: Читабимый SQL для Wiki/Confluence/README.
- Миграции и скрипты:: Безопасность точек с запятой, чёткие блоки.
- Встраивание API:: Minify + удаление комментариев, чтобы встраивать SQL в приложения/сервисы.
- BI/Отчёты:: Очистка запросов из BI-инструментов перед их распространением.
- Обучение и образование:: CTEs/окна функций структурировано показывать.
- Рефакторинг:: Сначала Beautify, затем изолировать и оптимизировать части..
- Воспроизведение ошибок:: Чётко структурированные запросы для тикетов поддержки.
- Контроль соблюдения руководств по стилю:: Команда последовательно применяет стандарт (Indent/Case).
- Шаблоны:: „Быстрый доступ“ как база для новых запросов.
- Подготовка релиза:: Minify для стабильных, переносимых артефактов..
6) Интеграция в Website/Teams
A) Прямое использование
Ссылка на инструмент: zerlo.net/formattersql
B) Встраивание iFrame (Intranet/Backoffice)
<iframe src="https://zerlo.net/formattersql" title="SQL Formatter" width="100%" height="900" style="border:0; border-radius:12px;"></iframe>
C) Руководство по стилю команды (база)
- Indent: 2 или 4 пробела (последовательно).
- Keyword-Case: UPPER (Strings/Identifier остаются без изменений).
- JOINs: условия прямо к
JOIN ... ON; нет скрытых фильтров вWHERE. - CASE: CASE: Каждое
WHEN/THENCASE: Каждое в отдельной строке; разумное; разумноеELSE. - Точка с запятой: в скриптах всегда ставить.
7) Опциональное JSON-API
Вы можете автоматизировать форматирование в инструментах/CI/CD. Простой пример:
POST https://zerlo.net/formattersql?api=1
Content-Type: application/json
{
"sql": "select id,name from users where id=1",
"mode": "beautify",
"options": { "indent": 4, "keywordCase": "upper", "stripComments": false, "ensureSemicolon": true }
}
{
"ok": true,
"result": "SELECT id, name\nFROM users\nWHERE id = 1;",
"stats": { "ms": 4, "inLen": 43, "outLen": 47 }
}
// Node.js (fetch)
const res = await fetch("https://zerlo.net/formattersql?api=1", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
sql: "SELECT * FROM orders WHERE created_at >= NOW() - INTERVAL '7 days';",
mode: "beautify",
options: { indent: 2, keywordCase: "upper", stripComments: true, ensureSemicolon: true }
})
});
const data = await res.json();
console.log(data.result);
<?php
// PHP
$payload = [
"sql" => "SELECT COUNT(*) FROM products;",
"mode" => "minify",
"options" => [ "indent" => 2, "keywordCase" => "preserve", "stripComments" => true, "ensureSemicolon" => true ]
];
$ch = curl_init("https://zerlo.net/formattersql?api=1");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ["Content-Type: application/json"],
CURLOPT_POSTFIELDS => json_encode($payload),
CURLOPT_RETURNTRANSFER => true
]);
$resp = curl_exec($ch);
curl_close($ch);
echo $resp;
8) Самопроверка (пошагово)
- Нажмите в инструменте ниже на Самопроверка – – автоматически проверяются три базовых случая..
- Сценарий Beautify:: Keywords UPPER, Ключевые слова UPPER, чёткие разрывы, чистый отступ.
- Сценарий Minify:: Комментарии удалены (если опция активна), компактный вывод.
- Сценарий отступов:: Видимый переход между 2/4/8 пробелами..
- Результат появляется в панели самопроверки; при отклонениях: проверить параметры и при необходимости сменить режим.
9) Профессиональные советы, производительность и безопасность
- Крупные скрипты:: Разделяйте после «Beautify» на тематические блоки (CTE, DDL vs DML), затем версионируйте по отдельности..
- Скорость обзора:: Используйте «Быстрый доступ» как стандартный каркас; избегает хаоса при новых запросах..
- Минимизация источников ошибок:: „Принудительно ставить точку с запятой“ активировать в миграционных пайплайнах..
- Строки остаются без изменений:: Форматтер не редактирует содержимое в кавычках; бизнес-логика остаётся безопасной..
- Конфиденциальность:: Нет выполнения SQL — только текст. Чувствительные данные не следует хранить надолго в сторонних инструментах..
- Сравнения облегчают:: Сначала Beautify, затем сравните с помощью Git-Diff — различия бросаются в глаза..
10) Указания по диалектам и ограничения
- MySQL/MariaDB: Стандартные ключевые слова и функции хорошо распознаются..
- PostgreSQL/SQLite: CTEs/Window-Funktionen CTE/оконные функции аккуратно отступлены; это уместно.
RETURNINGэто уместно.. - Экзотические диалекты:: Очень специфический диалектный синтаксис (например, проприетарные подсказки) сохраняется по содержанию; форматирование выполняется обобщённо..
- Нет семантического анализа:: Форматтер не понимает логику — он структурирует текст. Ошибки синтаксиса остаются ошибками..
11) Устранение неполадок и FAQ
„Ничего не изменилось?“ – Проверьте режим и параметры; ввод не должен быть пустым.
„Двойная точка с запятой?“ – Опция «принудить» + существующий ;: отключить опцию.
„Комментарии не были удалены“ – Включите удаление комментариев или установите режим на «Minify».
„Очень длинные запросы тормозят в браузере“ – Форматируйте крупные блоки по очереди или используйте API.
„Ключевые слова в строках изменились?“ – Не должно происходить; проверьте, действительно ли это строки (кавычки, не обратные кавычки).
12) Теперь попробовать
Начните здесь: zerlo.net/formattersql