Тренажёр SQL онлайн: SQL-запросы с проверкой
Что это за тренажёр
Бесплатный онлайн-тренажёр SQL для начинающих и для тех, кто готовится к работе тестировщиком. Регистрация и установка не нужны: учебная база данных интернет-магазина обуви работает прямо в браузере. Вы пишете SQL-запрос, тренажёр сразу выполняет его, показывает результат и говорит, верно ли решена задача.
Тренажёр состоит из двух частей. Шпаргалка по SQL коротко объясняет команды с примерами на учебной базе. Двадцать одна задача ведёт от простого SELECT до соединения таблиц, группировки и изменения данных. К каждой задаче есть подсказка и готовый ответ.
Начать решать задачиТемы заданий
- Выборка данных: SELECT и WHERE
- Выбор нужных столбцов
- Сравнения, AND и OR
- Поиск по части текста: LIKE
- Пустые значения: IS NULL
- Функции COUNT, SUM, MIN и MAX
- Сортировка: ORDER BY, ASC и DESC
- Ограничение выдачи: LIMIT
- Диапазоны: BETWEEN
- Группировка: GROUP BY и HAVING
- Соединение таблиц: JOIN
- Изменение данных: INSERT, UPDATE и DELETE
Как устроено задание
Сверху слева лежат таблицы учебной базы с настоящими данными: товары, остатки на складе, покупатели, корзины и заказы. Таблицы переключаются кнопками, у ключевых столбцов стоят отметки PK и FK. Сверху справа поле для SQL-запроса и кнопка «Выполнить». Пока вы пишете, тренажёр подсказывает команды, таблицы и столбцы и сразу отмечает ошибки в синтаксисе. Под таблицами и полем запроса стоит условие задачи, подсказка и кнопка «Ответ».
Тренажёр сравнивает результат с эталоном и подсказывает, что не так: не те столбцы, лишние строки, другой порядок или ошибка в синтаксисе. Ошибки показываются так же, как их пишет PostgreSQL.
Кому пригодится
Тем, кто готовится к первой работе тестировщиком. На собеседовании почти всегда просят написать SQL-запрос, а в работе SQL нужен, чтобы проверить, правильно ли приложение сохранило данные после запроса к API или действия на сайте. Задач хватает примерно на час, каждую можно решать сколько угодно раз.
Что такое SQL простыми словами
SQL (Structured Query Language, читается «эс-кью-эль» или «сиквел») — язык запросов к базам данных. На нём база получает просьбы: найди, посчитай, добавь, измени, удали. Почти все сайты и приложения хранят пользователей, товары, заказы и платежи в реляционных базах данных и работают с ними через SQL.
В SQL-запросе описывают, какой результат нужен, а как его получить, решает сама база. Поэтому основы осваиваются за несколько вечеров даже без опыта в программировании.
Команды SQL делят на группы. Тестировщик чаще всего пишет запросы из первой группы: читает и меняет данные.
| Группа | Команды | Для чего |
|---|---|---|
| Работа с данными (DML) | SELECT, INSERT, UPDATE, DELETE | читать, добавлять, менять и удалять строки |
| Структура базы (DDL) | CREATE, ALTER, DROP | создавать, менять и удалять таблицы |
| Права (DCL) | GRANT, REVOKE | выдавать и забирать права пользователей |
| Транзакции (TCL) | BEGIN, COMMIT, ROLLBACK | подтверждать или отменять несколько изменений разом |
База данных SQL: таблицы, строки и столбцы
Реляционная база данных — это набор связанных между собой таблиц. Таблица SQL похожа на лист Excel: каждая строка — одна запись (товар, покупатель, заказ), каждый столбец — одно свойство записи (название, цена, дата). Но у каждого столбца строгий тип данных, а связи между таблицами база проверяет сама: положить в корзину товар, которого нет в каталоге, не получится.
В учебной базе тренажёра шесть таблиц: каталог товаров products, остатки на складе stock,
покупатели users, корзины cart_items, заказы orders и товары в заказах
order_items. Таблица каталога в PostgreSQL создаётся так:
CREATE TABLE products ( sku VARCHAR(20) PRIMARY KEY, name VARCHAR(200) NOT NULL, gender VARCHAR(10) NOT NULL, price INTEGER NOT NULL, old_price INTEGER );
Типы данных SQL
| Тип | Что хранит | Пример |
|---|---|---|
| INTEGER | целые числа | цена 6990, количество 2 |
| NUMERIC, DECIMAL | точные дробные числа, например деньги с копейками | 1499.90 |
| VARCHAR, TEXT | строки | 'W-101', 'Кеды Mia' |
| DATE, TIMESTAMP | дата или дата со временем | '2025-03-14 10:15:00' |
| BOOLEAN | да или нет | true, false |
NULL — особое значение «данных нет». Это не ноль и не пустая строка, поэтому
его ищут через IS NULL. В учебной базе NULL стоит в старой цене old_price у товаров без скидки.
Примеры SQL-запросов
Запросы, которые тестировщик пишет чаще всего. Их можно скопировать в поле запроса любого задания и выполнить.
| Что нужно | SQL-запрос |
|---|---|
| Посмотреть, что лежит в таблице | SELECT * FROM products LIMIT 10; |
| Найти одну запись | SELECT * FROM products WHERE sku = 'W-101'; |
| Проверить фильтр на сайте | SELECT sku, name, price FROM products WHERE gender = 'women' AND price < 7000 ORDER BY price; |
| Найти товары со скидкой | SELECT sku, name, price, old_price FROM products WHERE old_price IS NOT NULL; |
| Посчитать товары в каждой группе | SELECT gender, COUNT(*) FROM products GROUP BY gender; |
| Собрать корзину покупателя из двух таблиц | SELECT p.name, c.size, c.qty, p.price FROM cart_items c JOIN products p ON p.sku = c.sku WHERE c.user_id = 1; |
| Поменять цену | UPDATE products SET price = 7490 WHERE sku = 'W-101'; |
Какой SQL бывает: PostgreSQL, MySQL, Microsoft SQL Server
Язык SQL один, он описан в международном стандарте. Но каждая система управления базами данных (СУБД) добавляет к стандарту свои функции и правила, и такой вариант языка называют диалектом. Основные команды — SELECT, WHERE, JOIN, GROUP BY, INSERT, UPDATE, DELETE — во всех диалектах пишутся одинаково.
| СУБД | Диалект | Где встречается |
|---|---|---|
| PostgreSQL | стандартный SQL, процедуры на PL/pgSQL | бесплатная, очень распространена в российских компаниях, в том числе в российской сборке Postgres Pro |
| MySQL, MariaDB | стандартный SQL со своими особенностями | сайты, интернет-магазины, веб-сервисы |
| Microsoft SQL Server (MS SQL) | T-SQL (Transact-SQL) | банки, крупный бизнес, системы на продуктах Microsoft, часть баз 1С |
| Oracle Database | PL/SQL | банки, телеком, крупные государственные системы |
| SQLite | упрощённый SQL | встроена в мобильные приложения и браузеры; на ней работает этот тренажёр |
Microsoft SQL Server и MS SQL: чем отличаются запросы
Microsoft SQL Server, или MS SQL, — СУБД компании Microsoft. Её вариант языка называется T-SQL. Для учёбы есть бесплатные редакции: Express с ограничением на размер базы и Developer, в которой есть всё, но которую нельзя использовать в рабочих системах.
Если на работе у вас Microsoft SQL Server, тренажёр всё равно подойдёт: почти все запросы из заданий выполнятся там без изменений. Отличаются в основном мелочи:
| Что нужно | PostgreSQL | Microsoft SQL Server |
|---|---|---|
| Первые 5 строк | SELECT … LIMIT 5 | SELECT TOP 5 … |
| Пропустить 10 строк и взять 5 | LIMIT 5 OFFSET 10 | ORDER BY … OFFSET 10 ROWS FETCH NEXT 5 ROWS ONLY |
| Склеить строки | name || ' ' || sku | name + ' ' + sku или CONCAT(name, ' ', sku) |
| Текущие дата и время | NOW() | GETDATE() |
| Поиск без учёта регистра | ILIKE | LIKE: обычно регистр и так не различается |
| Неудобное имя столбца | "order" | [order] |
| Да или нет | BOOLEAN | BIT: 1 или 0 |
| Автонумерация строк | GENERATED ALWAYS AS IDENTITY | IDENTITY(1,1) |
SQL Server Management Studio, DBeaver и другие программы для SQL
Запросы к настоящей базе пишут в программе-клиенте. Её подключают к серверу базы данных: указывают адрес, порт, имя пользователя и пароль, а дальше пишут SQL так же, как в этом тренажёре.
| Программа | Для каких баз | Где работает |
|---|---|---|
| SQL Server Management Studio (SSMS) | Microsoft SQL Server и Azure SQL | только Windows, бесплатно |
| DBeaver Community | PostgreSQL, MySQL, MS SQL Server, Oracle, SQLite и десятки других | Windows, macOS, Linux, бесплатно |
| pgAdmin | PostgreSQL | Windows, macOS, Linux, бесплатно |
Когда говорят «SQL Studio» или «SQL Management», обычно имеют в виду SSMS — SQL Server Management Studio. На Mac её нет, поэтому с MS SQL Server на Mac работают через DBeaver. На курсе Test School ученики подключаются к учебной базе PostgreSQL через DBeaver: он подходит почти к любой базе, которая встретится на работе.
Какой SQL учить тестировщику
Начинайте с основ стандартного SQL — они везде одинаковые. Кто уверенно пишет SELECT с условиями, сортировкой, группировкой и JOIN, тот на новой работе переключится на любой диалект за пару дней.
Если нужно выбрать одну систему, берите PostgreSQL: она бесплатная, ставится на любой компьютер, хорошо описана на русском и очень распространена в российских компаниях. Microsoft SQL Server стоит посмотреть отдельно, если откликаетесь в банки, в крупный бизнес или туда, где работают на продуктах Microsoft.
Минимум для собеседования джуниор-тестировщика: SELECT, WHERE, AND и OR, LIKE, IS NULL, ORDER BY, COUNT и другие агрегатные функции, GROUP BY и HAVING, INNER JOIN и LEFT JOIN, INSERT, UPDATE и DELETE. Всё это есть в 21 задаче тренажёра.
Частые вопросы
Где потренироваться в SQL онлайн бесплатно?
Прямо здесь: тренажёр бесплатный, работает без регистрации и без установки программ. Это часть учебной программы школы, выложенная в открытый доступ.
Подойдёт ли новичку без опыта?
Да. Задачи идут от простого к сложному, таблицы с данными всегда перед глазами, к каждой задаче есть подсказка, а если не получается, можно открыть ответ и разобрать его.
Чем SQL отличается от SQL Server и MS SQL?
SQL — это язык запросов. Microsoft SQL Server, он же MS SQL, — конкретная программа-СУБД от Microsoft, которая хранит данные и понимает SQL в своём диалекте T-SQL. PostgreSQL и MySQL — такие же СУБД других разработчиков.
Подойдёт ли тренажёр, если на работе Microsoft SQL Server?
Да. Основные команды в MS SQL такие же. Главное отличие, которое встретится в заданиях: вместо
LIMIT 5 в конце запроса там пишут TOP 5 сразу после SELECT.
Какой это SQL?
Запросы пишутся так же, как в PostgreSQL: текст в одинарных кавычках, большие и маленькие буквы в значениях различаются. Внутри тренажёра работает SQLite, поэтому отдельные тонкости PostgreSQL здесь не проверяются.
Где писать SQL-запросы к настоящей базе?
В программе-клиенте: SQL Server Management Studio для Microsoft SQL Server на Windows или DBeaver, который работает с любыми базами на Windows, macOS и Linux.
Нужно ли что-то устанавливать?
Нет. Тренажёр работает в любом современном браузере, на компьютере и на телефоне.
Что делать после тренажёра?
Закрепить на живом продукте: подключиться к настоящей базе через DBeaver, проверять данные после запросов к API, писать тестовую документацию. Этому учим на курсе — посмотрите программу или загляните в телеграм-канал. Потренироваться в инструментах браузера можно в тренажёре DevTools.
Задание 1 из 21
PKпервичный ключFKвнешний ключ, ссылка на другую таблицу
Начните писать запрос: подсказки команд, таблиц и столбцов появятся сами.
Здесь появится результат запроса и проверка: верно или нет.
Шпаргалка по SQL
Короткий справочник по командам из заданий. Все примеры написаны для учебной базы тренажёра, их можно скопировать в поле запроса и выполнить.
Учебная база
| Таблица | Что хранит | Ключи |
|---|---|---|
| products | Каталог: артикул, название, пол, цена и старая цена | PK sku |
| stock | Остатки: сколько пар каждого размера на складе | PK sku + size, FK sku → products |
| users | Покупатели: почта, имя, дата регистрации | PK id |
| cart_items | Корзины: какой товар, размер, цвет и сколько штук | PK id, FK user_id → users, FK sku → products |
| orders | Заказы: покупатель, статус, сумма, даты | PK id, FK user_id → users |
| order_items | Товары внутри заказа | PK id, FK order_id → orders, FK sku → products |
Первичный ключ (PK) — столбец, по которому строку можно найти однозначно. Внешний ключ (FK) ссылается на первичный ключ другой таблицы: в корзину можно положить только товар из каталога.
Выборка: SELECT и WHERE
SELECT sku, name, price FROM products WHERE gender = 'men' AND price < 5000;
| Запись | Что значит |
|---|---|
| SELECT * | все столбцы таблицы |
| = <> > < >= <= | равно, не равно, больше, меньше, больше или равно, меньше или равно |
| AND, OR, NOT | оба условия, хотя бы одно, отрицание |
| IN ('W-101', 'W-102') | значение из списка |
| BETWEEN 5000 AND 7000 | диапазон, обе границы включены |
| LIKE 'Кеды%' | поиск по шаблону: % — любые символы, _ — ровно один |
| IS NULL, IS NOT NULL | значение пустое или заполнено; запись = NULL не работает |
Текст и даты пишутся в одинарных кавычках, числа — без кавычек. Двойные кавычки означают имя столбца.
Функции и группировка
SELECT gender, COUNT(*), MIN(price), MAX(price) FROM products GROUP BY gender HAVING COUNT(*) > 5;
COUNT считает строки, SUM складывает, AVG считает среднее,
MIN и MAX находят наименьшее и наибольшее. GROUP BY собирает строки
в группы, а условие на результат функции пишут в HAVING, не в WHERE.
Сортировка и ограничение
SELECT sku, name, price FROM products ORDER BY price DESC LIMIT 5;
ASC — по возрастанию, так сортирует и без слова. DESC — по убыванию.
LIMIT оставляет первые строки результата.
Соединение таблиц: JOIN
SELECT c.sku, p.name, c.qty, p.price FROM cart_items c JOIN products p ON p.sku = c.sku WHERE c.user_id = 1;
JOIN оставляет только строки, у которых нашлась пара в обеих таблицах.
LEFT JOIN сохраняет все строки левой таблицы, а пустые места заполняет NULL.
Буквы c и p — короткие имена таблиц, чтобы не писать названия целиком.
Изменение данных
INSERT INTO products (sku, name, gender, price)
VALUES ('X-001', 'Кеды Тест', 'women', 3990);
UPDATE products SET price = 7490 WHERE sku = 'W-101';
DELETE FROM cart_items WHERE user_id = 3;
Перед UPDATE и DELETE выполните SELECT с тем же WHERE
и посмотрите, какие строки попадут под изменение. Без WHERE команда изменит всю таблицу.
Частые ошибки новичка
- Текст в двойных кавычках:
WHERE sku = "W-101". Нужны одинарные. - Поиск пустого значения через
= NULL. НужноIS NULL. - Функция в WHERE:
WHERE SUM(qty) = 0. Условие на сумму пишут вHAVING. - Регистр в LIKE:
'кроссовки%'не найдёт «Кроссовки». В PostgreSQL для поиска без учёта регистра естьILIKE.