Блог

Инструменты форматирования SQL-запросов

Разработчикам часто приходится анализировать и разбирать сложные SQL-запросы, которые без применения форматирования могут быть запутанными и сложными для отладки. Надлежащее форматирование значительно облегчает понимание и работу с SQL-запросами.

Для форматирования запросов можно воспользоваться онлайн-сервисами, например, Code Beautify, FreeFormatter и sqlformat.org. Однако многим не хотелось бы делиться своими SQL запросами со сторонними сервисами, особенно если код содержит конфиденциальную информацию.

В этой статье мы рассмотрим альтернативные решения для форматирования SQL-запросов, которыми пользуются инженеры Percona. Эти решения можно разделить на три категории:

- Плагины для редактора кода или IDE.

- СУБД (системы управления базами данных)

- Консольные инструменты

РЕДАКТОРЫ КОДА ИЛИ IDE

Большинство современных редакторов кода имеют встроенные возможности для форматирования запросов или соответствующие плагины. Мы проверили два популярных кроссплатформенных редактора кода: Visual Studio Code и Sublime.

Visual Studio Code предоставляет как встроенные возможности форматирования запросов, так и плагины (например, SQLTools).


У Sublime нет встроенной поддержки форматирования запросов, но данный функционал легко добавить с помощью Package Control. Доступно несколько плагинов, мы использовали SqlBeautifier.

СУБД

Системы управления базами данных также поддерживают форматирование запросов.

MySQL Workbench – инструмент визуального проектирования и управления базами данных. Чтобы воспользоваться форматированием запросов, введите ваш запрос в новой вкладке и выберите на панели инструментов “Beautify/reformat the SQL script”.

Percona Monitoring and Management (PMM) – одно из лучших бесплатных решений для мониторинга и управления базами данных с открытым исходным кодом. Функция PMM Query Analytics позволяет сразу просматривать запросы в отформатированном виде.

КОНСОЛЬНЫЕ ИНСТРУМЕНТЫ

Большая часть команды Percona предпочитает консольные инструменты.

Самым популярным консольным инструментом для форматирования запросов в нашей команде является sqlparse (sqlformat). Разработчики SQLFormat любезно предоставили исходный код этого простого и полезного инструмента, который вы можете использовать на разных платформах.

Разработчик из Percona Агустин Гальего сделал возможным использование sqlparse в Docker.



В данной статье мы рассмотрели ряд удобных инструментов для форматирования SQL-запросов, поделитесь в комментариях вашим опытом с этими или подобными инструментами.