Мінімізатор SQL
Мінімізуйте SQL, видаливши коментарі, переноси рядків і всі непотрібні пробіли, зберігши рядкові літерали, ідентифікатори в лапках і оператори. Виберіть діалект, наприклад MySQL, PostgreSQL, T-SQL або BigQuery, щоб правила лапок, коментарів і пакетів відповідали вашій базі даних. Мінімізатор повідомляє про незакриті рядки, коментарі й дужки із зазначенням рядка та стовпця; він стане в пригоді розробникам, які вбудовують запити в код.
Поширені запитання
Що видаляє мінімізатор SQL?
Він видаляє коментарі в рядках і блоках, переноси рядків та відступи, залишаючи один пробіл лише там, де без нього злилися б два слова або оператори. Рядкові літерали та взяті в лапки ідентифікатори залишаються без змін.
Навіщо вибирати діалект?
У різних базах даних відрізняються правила для лапок і коментарів. MySQL трактує # як початок коментаря, а зворотні скісні риски — як символи екранування; у PostgreSQL є рядки в доларових лапках; T-SQL використовує [квадратні дужки] та пакетні команди GO, а BigQuery — рядки в потрійних лапках. Діалект гарантує, що вміст літералів не зміниться.
Якісь коментарі зберігаються?
Так. Виконувані коментарі MySQL і MariaDB — блокові коментарі, текст яких починається з маркера версії, — а також підказки оптимізатору, як-от /*+ INDEX(t) */, зберігаються, бо вони змінюють виконання оператора. Усі інші коментарі видаляються.
Що відбувається з рядками GO, / і DELIMITER?
Роздільники пакетів, як-от GO у T-SQL, рядок / у скриптах Oracle та команди MySQL DELIMITER залишаються на окремих рядках. Клієнтські інструменти розпізнають їх лише там, тому об’єднання з іншим кодом порушило б роботу скрипту.
Чи може мінімізація порушити запит?
Мінімізатор видаляє лише пробіли та коментарі поза літералами й зберігає пробіли між символами операторів, тож - -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?
Ні. Запити обробляються в пам’яті та одразу повертаються. Вони ніколи не зберігаються; реєструється лише розмір запитів.