SQLLab
Все статьи

SQL песочница: пишите запросы онлайн без регистрации

SQL песочница онлайн — пишите и запускайте SQL запросы прямо в браузере. Три готовых датасета, реальный PostgreSQL, никакой установки.

22 марта 2026 г.·3 мин чтения·

SQL-песочница — это среда где можно писать и выполнять SQL-запросы прямо в браузере. Никакой установки PostgreSQL, никакой настройки подключения. Открыл страницу — пишешь запросы.

Зачем нужна песочница

Для изучения SQL. Прочитали про GROUP BY — сразу попробовали. Увидели пример с оконными функциями — воспроизвели. Немедленная практика в разы эффективнее чтения без проверки.

Для экспериментов. Не уверены как работает LEFT JOIN с NULL? Попробуйте в безопасной среде — не рискуете продакшн-базой.

Для собеседований. Перед техническим интервью стоит «размять руки» — порешать задачи в реальном SQL, а не в голове.

Для проверки идей. Придумали сложный запрос — проверьте логику на тестовых данных перед запуском на реальной базе.

Что должно быть в хорошей песочнице

Реальная СУБД. Не «симулятор SQL», а настоящий PostgreSQL. Ошибки должны быть настоящими, типы данных — правильными.

Готовые датасеты. Не нужно придумывать данные — книжный магазин, интернет-магазин, HR-данные. Можно сразу писать осмысленные запросы.

Подсветка синтаксиса. SQL в голом textarea — неудобно. Нужны подсветка ключевых слов и автодополнение.

История запросов. Чтобы не переписывать прошлый запрос если случайно закрыли вкладку.

Датасеты для практики

Книжный магазин (bookshop)

Таблицы: books, authors, orders, customers, order_items

Хорошо для практики: JOIN между книгами и авторами, агрегация продаж по жанрам, топ-авторы по выручке.

-- Топ-5 авторов по количеству проданных книг
SELECT a.name, SUM(oi.quantity) AS books_sold
FROM authors a
JOIN books b ON a.id = b.author_id
JOIN order_items oi ON b.id = oi.book_id
GROUP BY a.id, a.name
ORDER BY books_sold DESC
LIMIT 5;

Интернет-магазин (shop)

Таблицы: products, categories, orders, users, order_items

Хорошо для: воронки, retention, RFM-анализ, категории товаров.

-- Выручка по категориям за последние 30 дней
SELECT c.name, SUM(oi.price * oi.quantity) AS revenue
FROM categories c
JOIN products p ON c.id = p.category_id
JOIN order_items oi ON p.id = oi.product_id
JOIN orders o ON oi.order_id = o.id
WHERE o.created_at >= NOW() - INTERVAL '30 days'
GROUP BY c.name
ORDER BY revenue DESC;

Сотрудники (employees)

Таблицы: employees, departments, salaries, positions

Хорошо для: оконные функции (ранжирование внутри отдела), расчёт зарплат, иерархия менеджеров.

-- Рейтинг сотрудников по зарплате внутри отдела
SELECT
    e.name,
    d.name AS department,
    e.salary,
    RANK() OVER (PARTITION BY d.id ORDER BY e.salary DESC) AS rank_in_dept
FROM employees e
JOIN departments d ON e.department_id = d.id;

Типичный сеанс в песочнице

  1. Выбрать датасет
  2. Посмотреть схему таблиц (\d или через интерфейс)
  3. Написать простой SELECT чтобы понять данные
  4. Постепенно усложнять запрос
  5. Попробовать что-то новое — например впервые написать оконную функцию

Нет ограничений по времени, нет «правильного ответа», нет оценок. Только вы и SQL.

Попробуйте прямо сейчас

Откройте песочницу на sqllab.ru/sandbox и напишите первый запрос. Выберите датасет bookshop и выполните:

SELECT * FROM books LIMIT 10;

Дальше — ваше любопытство ведёт.

Похожие статьи

Попробуй на практике

Тренажёр с реальными задачами — бесплатно и без регистрации

Открыть тренажёр →