Минификатор SQL
Минифицируйте SQL, удаляя комментарии, переносы строк и все ненужные пробелы, сохраняя строковые литералы, идентификаторы в кавычках и операторы без изменений. Выберите диалект, например MySQL, PostgreSQL, T-SQL или BigQuery, чтобы правила кавычек, комментариев и пакетной обработки соответствовали вашей базе данных. Минификатор сообщает о незакрытых строках, комментариях и скобках с указанием строки и столбца — это удобно разработчикам, встраивающим запросы в код.
Часто задаваемые вопросы
Что удаляет минификатор SQL?
Удаляются комментарии в строках и блоках, переводы строк и отступы; один пробел сохраняется только там, где иначе слились бы два слова или оператора. Строковые литералы и идентификаторы в кавычках остаются без изменений.
Зачем выбирать диалект?
В базах данных используются разные правила для кавычек и комментариев. MySQL считает # началом комментария, а обратную косую черту — символом экранирования; PostgreSQL поддерживает строки в долларах, T-SQL использует [квадратные скобки] и пакеты GO, а BigQuery — строки в тройных кавычках. Диалект гарантирует, что содержимое литералов не изменится.
Какие-нибудь комментарии сохраняются?
Да. Сохраняются исполняемые комментарии MySQL и MariaDB, блочные комментарии, текст которых начинается с маркера версии, а также подсказки оптимизатору, например /*+ INDEX(t) */ — они влияют на выполнение оператора. Все остальные комментарии удаляются.
Что происходит со строками GO, / и DELIMITER?
Разделители пакетов, например GO в T-SQL, строка / в скриптах Oracle и команды DELIMITER MySQL остаются на отдельных строках. Клиентские инструменты распознают их только там, поэтому объединение с другим кодом нарушило бы работу скрипта.
Может ли минификация нарушить работу запроса?
Минификатор удаляет только пробелы и комментарии вне литералов и сохраняет пробелы между символами операторов, поэтому - -1 не превратится в комментарий. Запрос будет выполняться так же, как и раньше.
Какие ошибки обнаруживаются?
О незакрытых строковых литералах, идентификаторах в кавычках, блочных комментариях и строках в долларах, а также о несбалансированных скобках сообщается с указанием строки и столбца. Полная грамматика SQL не проверяется.
Какие диалекты доступны?
Standard SQL, MySQL, MariaDB, PostgreSQL, SQLite, T-SQL, PL/SQL, BigQuery, Snowflake, Redshift, Spark SQL, Hive, Trino и Db2. В Standard SQL, используемом по умолчанию, строки заключаются в одинарные кавычки без экранирования обратной косой чертой; двойные кавычки, обратные кавычки и квадратные скобки допустимы для идентификаторов.
Меняется ли регистр ключевых слов?
Нет. Регистр ключевых слов, идентификаторов и функций сохраняется. Удаляются только пробелы и комментарии.
Каков максимальный размер входных данных?
До 1 MB SQL на запрос. Длинные скрипты миграции с большим количеством операторов минифицируются за один проход.
Сохраняется ли мой SQL?
Нет. Запросы обрабатываются в памяти и сразу возвращаются. Они никогда не сохраняются; в журнал записывается только размер запроса.