SQL можно начать преподавать уже в 8 классе — синтаксис проще, чем в большинстве языков программирования, а результат виден сразу. Вот конкретный план урока на 45 минут.
Что нужно до урока
Подготовьте одну таблицу с понятными данными. Лучший вариант для школьников — таблица учеников или книг. Абстрактные orders и products работают хуже: детям непонятна предметная область.
CREATE TABLE students (
id SERIAL PRIMARY KEY,
name TEXT,
grade INTEGER,
score INTEGER
);
Если используете SQL Lab, там уже есть готовые датасеты — объяснять установку базы данных не нужно.
Структура урока (45 минут)
1. Зачем SQL — 5 минут
Покажите реальный пример: «Вот приложение ВКонтакте. Когда вы ищете друга по имени — база данных выполняет SQL-запрос вот такого вида:»
SELECT * FROM users WHERE name LIKE 'Иван%';
Этого достаточно. Не нужно рассказывать историю реляционных баз данных.
2. SELECT — 10 минут
Начните с самого простого:
SELECT name FROM students;
Затем добавьте WHERE:
SELECT name FROM students WHERE grade = 10;
Попросите учеников самих написать запрос: «Найдите всех, у кого оценка больше 80».
Частая ошибка: ученики пишут grade = "10" вместо grade = 10. Разберите сразу — в SQL строки берутся в одинарные кавычки, числа — нет.
3. ORDER BY и LIMIT — 10 минут
SELECT name, score
FROM students
ORDER BY score DESC
LIMIT 5;
Задание: «Выведите трёх лучших учеников класса 9».
Это задание хорошо работает потому, что результат понятен без объяснений — дети сами проверяют, правильно ли получилось.
4. Самостоятельная работа — 15 минут
Дайте 3–4 задачи нарастающей сложности. Например:
- Найдите всех учеников 11 класса
- Выведите имена и оценки, отсортируйте по убыванию оценки
- Найдите учеников, у которых оценка выше средней по классу
- (Сложно) Подсчитайте средний балл по каждому классу
Задача 3 требует подзапроса — для сильных учеников.
5. Разбор ошибок — 5 минут
Попросите одного ученика показать экран. Разберите ошибку публично — это снимает страх ошибиться у остальных.
Как мотивировать
Не работает: «SQL нужен для работы программиста».
Работает: «За 45 минут вы научитесь находить любые данные в любой базе. Это то, что делают аналитики в Яндексе, ВКонтакте и Сбере каждый день».
Покажите, что их результаты видны на экране в реальном времени — это само по себе мотивирует.
Типичные проблемы
«Не работает интернет» — скачайте SQL Lab заранее или используйте SQLiteOnline в офлайн-режиме.
«Часть класса уже знает SQL» — дайте им задачу с GROUP BY или JOIN пока остальные разбирают SELECT.
«Ученики не понимают JOIN» — не надо JOIN на первом уроке. SELECT + WHERE + ORDER BY — достаточно для 45 минут.
Что дать на дом
Попросите написать 3 запроса к любой таблице, которую ученик придумает сам. Тема произвольная: любимые игры, фильмы, команды. Главное — чтобы данные были свои.
Это работает лучше, чем стандартные задачи из учебника: ученик сам придумывает данные и сам их анализирует.