Привет! Меня зовут Андрей Шмиг, я разработчик платформы DataHub, платформа для совместной работы над данными - своего рода GitHub для данных. В этой статье покажу на что способен веб-редактор MySQL хранилища и почему это отличный инструмент для работы тем, кто изучает SQL.
![](https://habrastorage.org/getpro/habr/upload_files/aa1/4a5/adf/aa14a5adfa28ddbfd33b35a73a532306.jpg)
Предыдущие статьи в хронологическом порядке:
Как делиться структурированными данными и получать за них донаты?
Репозитории данных коммерческого типа. Как зарабатывать на доступе к данным?
Организовываем доступ к публичным данным через Predefined Queries
Ещё один редактор ...
В поиске Яндекс или Google можно найти достаточное количество онлайн-редакторов для тестирования и написания SQL запросов и все они хороши по-своему - некоторые редакторы поддерживают создание таблиц, некоторые поддерживают загрузку и выгрузку данных, некоторые редакторы ограничиваются выполнением запросов к заранее созданным таблицам и базам, а некоторые позволяют работать с базой данных и таблицами только в рамках текущей сессии. У каждого редактора свои ограничения и возможности, которые могут подойти не всем.
Список из 4 популярных иностранных веб-редакторов:
В DataHub веб-редактор хранилища MySQL является органично встроенным компонентом, который позволяет работать с хранилищем MySQL (не выборе предоставляются ещё несколько - как SQL, так и NoSQL) так, словно вы работаете с локальной базой данных - история ваших действий и запросов сохраняется, а приватные репозитории с данными позволяют работать с закрытыми данными только вам сохраняя наработки для последующих изменений.
Программные ориентиры
При разработке модуля веб-редактора для хранилища MySQL и Visual Query Builder репозитория ориентировался на продвинутые продукты:
MySQL Workbench;
DBeaver;
Некоторые визуальные составляющие были напрямую переняты, а некоторые переработаны и улучшены.
Хранилища данных MySQL
Любое хранилище данных может быть создано в рамках репозитория, как закрытого, так и открытого, поэтому я воспользуюсь созданным из предыдущих статьях демо-репозиторием для демонстрации.
![](https://habrastorage.org/getpro/habr/upload_files/80f/f2e/2e3/80ff2e2e3751318503ef2b23dc5afb9b.png)
В созданном хранилище MySQL у меня одна таблица с названием countries и 4 записями со странами.
Репозиторий может содержать неограниченное количество хранилищ, а все хранилища наследуют область доступа (приватность) самого репозитория.
Веб-редактор MySQL
Для каждого типа хранилища существует свой тип Wizard (визуального помощника) и доступен он в карточке хранилища по клику на иконку консоли в правом верхнем углу:
![](https://habrastorage.org/getpro/habr/upload_files/cb0/a15/e40/cb0a15e40c58b558effe4c4f0d45b09e.png)
По-умолчанию MySQL Wizard открывается с активной вкладкой Console в которой происходит работа с запросами и результатами выборок данных.
Остановлюсь подробнее на возможностях предоставляемых редактором:
Открытие SQL-скрипта с локальной машины;
Сохранение SQL-запроса на локальную машину;
Форматирование запроса;
Выполнение запроса (множественное);
Выполнение последнего запроса (re-execution);
Пояснение запроса (EXPLAIN);
История запросов;
Очистка содержимого редактора;
Во вкладке Storage - информация о хранилище, структура отображения аналогична структуре отображения информации в MySQL Workbench:
![](https://habrastorage.org/getpro/habr/upload_files/2e5/0a3/47c/2e50a347c1c2d01a0bc775efd1a5d88a.png)
Содержит информацию о:
Таблицах;
Колонках;
Индексах;
Триггерах;
Отображениях;
Процедурах;
Функциях;
Событиях;
Все эти составляющие базы данных MySQL поддерживаются для использования через компонент редактора MySQL Wizard.
На примере таблицы countries продемонстрирую структуру отображения данных:
![](https://habrastorage.org/getpro/habr/upload_files/9a3/b7e/33a/9a3b7e33acbcac3880f0ba687648ff6c.png)
Содержит информацию о:
Общей информации о таблице;
Данных (пример выборки из 25 строк);
Колонках;
Индексах;
Триггерах;
Внешних ключах;
Разбивках (partitions);
DDL;
Создаём таблицу и заполняем данными
В текущий реализации MySQL Wizard поддерживает только консольный режим взаимодействия с хранилищем (базой данных) - создание таблиц, колонок, триггеров и прочего осуществляется через написание SQL-запросов.
Напишем запрос для создания таблицы projects:
![](https://habrastorage.org/getpro/habr/upload_files/526/591/28c/52659128c4eab1adf0bbee41a8074e05.png)
Отформатируем его:
![](https://habrastorage.org/getpro/habr/upload_files/f04/16c/878/f0416c878510da936d5a992d71c0d0b8.png)
... и выполним:
![](https://habrastorage.org/getpro/habr/upload_files/0fd/046/e7b/0fd046e7b5c5c8f3110bdee052b02abf.png)
Как вы можете заметить произошли некоторые изменения в отображении после выполнения запроса:
с левой стороны в списке таблиц появилась созданная нами таблица projects;
результаты выполненного запроса отобразились под редактором;
в историю добавилась запись о выполненном запросе создания таблиц:
![](https://habrastorage.org/getpro/habr/upload_files/637/0ac/765/6370ac765fa7561b5c7f704c9407f902.png)
Перейдем в таблицу projects и посмотрим на список созданных колонок во вкладке Columns, чтобы убедиться, что всё создано так, как мы того и хотели:
![](https://habrastorage.org/getpro/habr/upload_files/4a5/dbb/efe/4a5dbbefe47898f96d8a4a9ae23c5609.png)
Отлично, всё работает именно так, как и должно.
Давайте заполним данными нашу таблицу - возвращаемся в Console и пишем запрос:
![](https://habrastorage.org/getpro/habr/upload_files/e10/713/829/e10713829011ac6536b9476beda0dcda.png)
Обратите внимание, что в этот раз я написал в редакторе два запроса - первый для заполнения таблицы projects тестовыми данными, а второй - для выборки полученных данных.
Как и в MySQL Workbench редактор MySQL Wizard в DataHub поддерживает множественное отображение результатов выполнения запросов:
![](https://habrastorage.org/getpro/habr/upload_files/bb1/40c/494/bb140c4942ce9d58756a0f8350339683.png)
Очистим таблицу воспользовавшись повторением команды из истории, которую я раньше уже выполнил:
![](https://habrastorage.org/getpro/habr/upload_files/af9/c31/8c7/af9c318c79724760877676b09571e582.png)
Нажмем на кнопку с иконкой Консоли и выполним запрос:
![](https://habrastorage.org/getpro/habr/upload_files/5ff/347/4ea/5ff3474ea5edf500034ee51a39013540.png)
Все наши изменения с базой сохраняются и будут доступны при повторном посещении (редактировании) репозитория данных.
Редактор MySQL Wizard отображает полные коды ошибок вместе с текстовым описанием для повышения удобства их исправления:
![](https://habrastorage.org/getpro/habr/upload_files/762/d5f/173/762d5f1733130025f50b86bc5317b5e8.png)
Веб-редактор MySQL Wizard может стать для вас отличным помощником в изучении SQL.
Надеюсь, что возможности DataHub позволят вам делиться, монетизировать и работать с данными эффективно!
Если вам понравилась статья — ставьте лайк и оставляйте комментарий. Подписывайтесь на мой блог про DataHub на Хабре, а так же на Телеграм канал поддержки сервиса.
Мой публичный профиль на DataHub — @aashmig.
Буду рад ответить на ваши вопросы и дополнить статью.