Разработчикам часто приходится анализировать и разбирать сложные 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-запросов, поделитесь в комментариях вашим опытом с этими или подобными инструментами.