SQLtest - бесплатный тренажёр SQL
24 поста
24 поста
9 постов
Однажды я понял, что подсветка SQL в обучающих проектах — это тот еще квест.
В sqltest.online я использовал highlight.js для подсветки SQL в учебных заданиях.
Либо библиотека тащит за собой лишнее, либо нормально подсвечивает только учебный SQL в духе `SELECT * FROM table`, а как дело доходит до диалектов, функций и более живых запросов, начинается боль.
Я сначала пробовал готовые решения. Потом пытался допиливать описание SQL для highlight.js. В какой-то момент стало понятно: проще собрать свой инструмент под эту задачу, чем дальше воевать с универсальными решениями.
Так появился **sql-highlighter** — легкий JavaScript-хайлайтер для SQL, который:
не тянет тяжелые зависимости,
работает прямо в браузере,
поддерживает light/dark темы,
умеет расширяться под конкретный диалект без правок ядра.
Как это устроено:
Сначала строки и комментарии временно выносятся в отдельные плейсхолдеры.
Потом проходят основные токены: ключевые слова, функции, типы и т.д.
Затем возвращаются строки и комментарии.
Важный момент: порядок обработки имеет значение, чтобы не ломать конструкции вроде `GROUP BY` или `SELECT DISTINCT`.
Самое приятное — можно добавить свои ключевые слова и функции через `SQLHighlighter.extend(...)`, не лезя внутрь библиотеки. Это удобно, если у вас обучающий проект, документация или свой SQL-диалект.
Если коротко: я делал не универсальный SQL-парсер на все случаи жизни, а практичный и быстрый инструмент для реальных веб-проектов, где важны размер, простота и нормальная подсветка.
Если вам нужен SQL-highlighter для сайта, документации или обучения, вот репозиторий проекта: sql-highlighter
Однажды в телевизоре появился бледный как смерть Министр Финансов и заявил:
— Финансовый кризис нас не затронет. Потому что. Я вам точно говорю.
Население, знающее толк в заявлениях официальных лиц, выматерилось негромко и отправилось закупать соль, спички и сахар.
На следующий день в телевизоре появился смущенный донельзя Министр Торговли и сказал:
— Запасы хлеба и товаров первой необходимости позволяют нам с гордостью утверждать, что голод и товарный дефицит нам не грозит. Вот вам цифры.
— Ох! – сказало население и докупило еще муку и крупы.
Министр Сельского Хозяйства для убедительности сплясал на трибуне и сказал радостно:
— Невиданный урожай! Надежды на экспорт! Возрождаемся! Закрома трещат!
— Во даже как! – ужаснулось население и побежало конвертировать сбережения в иностранную валюту.
— Цены на недвижимость упадут! Каждому студенту по пентхаузу! В ближайшем будущем! – не поморщившись, выпалил Министр Строительства.
— Да что ж такое, а? – взвыло население и побежало покупать керосин, керосиновые лампы, дрова и уголь.
— Современная армия на контрактной основе. Уже завтра. И гранаты новой системы. В мире таких еще нет. – солидно сказал Министр Обороны. – Ну а чего нам? Денег же – тьма тьмущая. Резервы, запасы и вообще профицит.
— Мама!… -пискнуло население и начало копать землянки.
— Все о-фи-ген-но! Вы понимаете?! О-ФИ-ГЕН-НО!!! – внушал Президент. – Мы уже сегодня могли бы построить коммунизм. Единственное что нас останавливает – нам всем станет нефиг делать. Потому можете спать спокойно! Стабильнее не бывает! Пенсионеры покупают икру ведрами! Предвижу качественный скачок, рывок и прыжок. А количественный – вообще бег! Семимильными шагами к достатку и процветанию. Карибы становятся ближе. Отсель грозить мы будем миру. По сто тридцать центнеров роз с каждой клумбы. Надои будем вообще сокращать. Коровы не могут таскать вымя. Население возмущено дешевизной. Южная Америка просится в состав нас на правах совхоза. Ура!
— Да что ж вы там такое готовите, звери?! – закричало население и на всякий случай переоделось во все чистое…
Михаил Жванецкий Сергей Узун
Нас уже больше 9000 на sqltest.online
Небольшая, но очень приятная новость: на sqltest.online зарегистрировалось уже больше 9000 пользователей.
Когда запускал проект, хотел сделать простую площадку, где можно бесплатно тренировать SQL на реальных СУБД, а не только читать теорию. Сейчас там уже тысячи людей, которые регулярно практикуются, решают задачи и прокачивают запросы.
Для меня это сильная мотивация развивать сервис дальше:
- добавлять новые задания;
- расширять уроки;
- улучшать стабильность и скорость платформы.
Спасибо всем, кто пользуется, пишет фидбек и делится проектом. Без вас этой цифры бы не было.
Если давно хотели подтянуть SQL, можно начать с простого: sqltest.online
Буду рад идеям, какие темы и форматы добавить следующими.
P.S. Для пользователей из РФ работает российское зеркало: sqltest-online.ru
P.S.S. Если вам нравятся мои сервисы, буду рад донату.
Я знаю, что в последнее время многие пользователи из России столкнулись с трудностями при доступе к основному сайту sqltest.online из-за ограничений регуляторов.
Моя миссия остается прежней: сделать обучение SQL доступным и качественным для каждого. Я убежден, что знания не должны иметь границ, поэтому я подготовил официальное зеркало для бесперебойной работы:
Что важно знать:
Полный функционал: Это точная копия основного ресурса со всеми задачами и тренажерами.
Поддержка пользователей: Я поддерживаю всех учеников по всему миру. Неважно, где вы находитесь — ваша цель выучить SQL приоритетна для меня.
Доступность: Зеркало настроено специально для стабильной работы внутри РФ.
Учитесь, практикуйтесь и повышайте свои навыки без преград. Добро пожаловать! 🎓
Привет, Пикабу!
Хочу поделиться обновлением своего пет-проекта, над которым работаю в свободное время — sqltest.online. Это бесплатный онлайн-тренажер для тех, кто хочет набивать руку в написании SQL-запросов прямо в браузере, не заморачиваясь с установкой тяжелых баз данных.
Что изменилось в этом обновлении?
Полный редизайн. Старый интерфейс был «суровым» и чисто функциональным. Теперь всё стало чище, удобнее и современнее. Я переработал рабочую область, чтобы ничего не отвлекало от кода, а результаты запросов читались с первого взгляда.
Новая система уроков. Если раньше это была просто «песочница» со списком задач, то теперь я добавил структурированные уроки. Теперь это полноценный путь: вы идете от самых основ (простые выборки) к более сложным темам (группировки, джойны, вложенные запросы) в логичном порядке.
Почему это удобно?
Всё в браузере: Не нужно разворачивать PostgreSQL или MariaDB локально. Зашел, написал код, увидел результат.
Бесплатно и доступно: Делаю проект для души, поэтому никакой регистрации, подтверждений почты или платных подписок.
Поддержка языков: Интерфейс полностью на русском.
Зачем я это пишу? Проект живет и развивается на моем энтузиазме. Мне очень важен ваш фидбек: удобно ли пользоваться новым интерфейсом? Хватает ли пояснений в новых уроках? Любая критика или идеи по новым задачам — это лучший стимул фиксить баги и пилить новый контент.
Если вы сейчас учите SQL или просто хотите освежить навыки перед собеседованием — залетайте тестировать.
Ссылка на проект: sqltest.online
Буду рад пообщаться в комментариях!