# Форматтер MySQL

Форматируйте запросы и скрипты MySQL по правилам MySQL для идентификаторов в обратных кавычках, экранирования обратной косой чертой в строках, комментариев # и блоков DELIMITER. Каждая секция начинается с новой строки, столбцы и условия получают отступы, а секции MySQL, например ON DUPLICATE KEY UPDATE, остаются вместе. О незакрытых строках, комментариях и скобках сообщается с указанием строки и столбца, что помогает разработчикам читать и проверять код базы данных.

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

### Какой синтаксис MySQL понимает форматтер?

Он распознаёт идентификаторы в обратных кавычках, строки в одинарных и двойных кавычках с экранированием обратной косой чертой и удвоением кавычек, шестнадцатеричные, битовые и национальные литералы, например X'FF', B'101' и N'text', вводные обозначения кодировки, такие как _utf8mb4'text', а также переменные @user. Содержимое литералов остаётся без изменений.

### Как обрабатываются комментарии?

Комментарии с решёткой (#) и комментарии с двумя дефисами (--) остаются на месте. Как и в MySQL, два дефиса начинают комментарий только в том случае, если за ними следует пробел или перевод строки, поэтому a--1 остаётся выражением. Исполняемые комментарии с указанием версии сохраняются без изменений.

### Как форматируется запрос?

Основные секции, такие как SELECT, FROM, WHERE, GROUP BY, HAVING, ORDER BY и LIMIT, начинаются с новой строки, а их содержимое получает отступ. Каждый выбранный столбец размещается на отдельной строке; AND и OR начинаются с новой строки, и каждый JOIN также выносится на отдельную строку.

### Поддерживаются ли специфичные для MySQL секции?

Да. ON DUPLICATE KEY UPDATE, LOCK IN SHARE MODE, FOR UPDATE и FOR SHARE остаются одной секцией и не разбиваются на строки.

### Можно ли форматировать хранимые процедуры и триггеры?

Да. Команды DELIMITER остаются на отдельных строках, пользовательский разделитель, например // или $$, завершает оператор, а блоки BEGIN и END с IF, WHILE и LOOP получают отступы.

### Меняется ли регистр ключевых слов?

Нет. Ключевые слова, имена функций и идентификаторы сохраняют исходный регистр: select и SELECT останутся как есть. Меняются только пробелы и переводы строк.

### Проверяет ли форматтер корректность моего запроса?

Он проверяет, что строки, идентификаторы в кавычках и блочные комментарии закрыты, а скобки сбалансированы, и сообщает о проблемах с указанием строки и столбца. Запрос не выполняется, имена таблиц и полная грамматика MySQL не проверяются.

### Можно ли изменить отступ?

Да. Выберите отступ в 2 или 4 пробела либо табуляцию для каждого уровня. Короткие списки в скобках остаются на одной строке, а длинные списки и подзапросы оформляются как блок с отступом.

### Каков максимальный размер входных данных?

До 1 MB SQL на запрос, до 128 KB в одном операторе. Скрипты с большим количеством операторов форматируются по одному оператору за раз и разделяются пустыми строками.

### Сохраняется ли мой SQL?

Нет. Запросы форматируются в памяти и сразу возвращаются. Они никогда не сохраняются; в журнал записывается только размер запроса.

Ваша реклама здесь?

[Напишите нам по электронной почте](mailto:hi@dennn.is?subject=%D0%A0%D0%B5%D0%BA%D0%BB%D0%B0%D0%BC%D0%B0%20%D0%BD%D0%B0%20OneClick%20Pro)

[Реклама Набор плагинов для работы агентов с WordPress.](https://sleekwp.com/?ref=oneclickpro)
