Всё о языке запросов SQL для детей

Всё о языке запросов SQL для детей
Всё о языке запросов SQL для детей

Язык запросов SQL 🗄️💾

SQL (читается как «эс-кью-эл») — это специальный язык для работы с базами данных. Представь, что у тебя есть огромная библиотека с миллионами книг, и тебе нужно быстро найти конкретную книгу. SQL помогает компьютерам делать то же самое с информацией! Это один из самых востребованных навыков в IT-индустрии.

Что такое SQL?

SQL расшифровывается как Structured Query Language — «Структурированный язык запросов». Это значит, что мы можем задавать компьютеру вопросы о данных, и он даст нам точные ответы.

💡 Интересный факт: SQL был создан в начале 1970-х годов в IBM двумя учёными — Дональдом Чемберлином и Рэймондом Бойсом. Изначально язык назывался SEQUEL (Structured English Query Language), но из-за торговой марки название сократили до SQL.

SQL — это не язык программирования в классическом понимании. Это язык запросов, предназначенный специально для управления данными в реляционных базах данных. С его помощью можно:

  • Создавать и изменять структуру баз данных
  • Добавлять, изменять и удалять данные
  • Извлекать нужную информацию из огромных объёмов данных
  • Управлять правами доступа к данным
  • Анализировать и агрегировать информацию

Что такое база данных?

База данных — это организованное хранилище информации. Представь её как Excel на стероидах! Данные хранятся в таблицах, которые состоят из строк (записей) и столбцов (полей).

Пример: База данных школы

ID Имя Класс Возраст Любимый предмет
1 Анна 11 Математика
2 Максим 10 Физкультура
3 София 11 Рисование

🔑 Важные понятия:

  • Таблица — набор связанных данных (например, список учеников)
  • Строка (запись) — одна единица данных (один ученик)
  • Столбец (поле) — характеристика данных (имя, возраст и т.д.)
  • Первичный ключ (ID) — уникальный идентификатор каждой записи

Основные команды SQL

SQL состоит из различных типов команд. Давай разберём самые важные!

1. SELECT — Выбрать данные

Команда SELECT используется для получения данных из таблицы. Это самая часто используемая команда в SQL!

-- Выбрать все данные из таблицы SELECT * FROM students; -- Выбрать конкретные столбцы SELECT name, age FROM students; -- Выбрать с условием SELECT * FROM students WHERE age > 10; -- Выбрать учеников из класса 5А SELECT name, favorite_subject FROM students WHERE class = '5А';
Результат: name | favorite_subject ---------|------------------ Анна | Математика София | Рисование

2. INSERT — Добавить данные

Команда INSERT добавляет новые записи в таблицу.

-- Добавить нового ученика INSERT INTO students (name, class, age, favorite_subject) VALUES ('Дмитрий', '5Б', 11, 'Информатика'); -- Добавить несколько учеников сразу INSERT INTO students (name, class, age, favorite_subject) VALUES ('Елена', '5А', 10, 'Литература'), ('Игорь', '5В', 11, 'Физика');

3. UPDATE — Обновить данные

Команда UPDATE изменяет существующие записи.

-- Изменить любимый предмет у Анны UPDATE students SET favorite_subject = 'Программирование' WHERE name = 'Анна'; -- Увеличить возраст всех учеников на 1 UPDATE students SET age = age + 1; -- Изменить класс для всех 11-летних UPDATE students SET class = '6А' WHERE age = 11;
⚠️ Осторожно! Если забыть условие WHERE в команде UPDATE, изменятся ВСЕ записи в таблице! Всегда проверяй свои запросы перед выполнением.

4. DELETE — Удалить данные

Команда DELETE удаляет записи из таблицы.

-- Удалить ученика по имени DELETE FROM students WHERE name = 'Максим'; -- Удалить всех учеников младше 10 лет DELETE FROM students WHERE age < 10;
⚠️ Будь осторожен! DELETE без WHERE удалит ВСЕ данные из таблицы! Это необратимая операция.

Создание таблиц

Прежде чем работать с данными, нужно создать структуру таблицы с помощью команды CREATE TABLE.

Типы данных в SQL

Тип данных Описание Пример
INT Целые числа 1, 42, -5, 1000
VARCHAR(n) Текст переменной длины (до n символов) 'Привет', 'SQL'
DATE Дата 2025-10-29
DECIMAL(m,n) Дробные числа 3.14, 99.99
BOOLEAN Логическое значение TRUE, FALSE
TEXT Большой текст Длинное описание

Пример создания таблицы

-- Создать таблицу книг CREATE TABLE books ( id INT PRIMARY KEY AUTO_INCREMENT, title VARCHAR(200) NOT NULL, author VARCHAR(100) NOT NULL, publication_year INT, price DECIMAL(10, 2), in_stock BOOLEAN DEFAULT TRUE ); -- Создать таблицу игр CREATE TABLE games ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(100) NOT NULL, genre VARCHAR(50), rating DECIMAL(3, 1), release_date DATE, developer VARCHAR(100) );

📝 Ключевые слова:

  • PRIMARY KEY — уникальный идентификатор записи
  • AUTO_INCREMENT — автоматическое увеличение значения
  • NOT NULL — поле обязательно для заполнения
  • DEFAULT — значение по умолчанию

Фильтрация и условия WHERE

Условие WHERE позволяет отфильтровать данные по различным критериям. Это как использовать фильтры при поиске!

Операторы сравнения

-- Равно SELECT * FROM students WHERE age = 11; -- Не равно SELECT * FROM students WHERE class <> '5А'; -- Больше, меньше SELECT * FROM books WHERE price > 500; SELECT * FROM books WHERE publication_year < 2020; -- Больше или равно, меньше или равно SELECT * FROM games WHERE rating >= 8.0;

Логические операторы

-- AND (И) - оба условия должны быть истинны SELECT * FROM students WHERE class = '5А' AND age > 10; -- OR (ИЛИ) - хотя бы одно условие должно быть истинно SELECT * FROM students WHERE favorite_subject = 'Математика' OR favorite_subject = 'Физика'; -- NOT (НЕ) - отрицание SELECT * FROM books WHERE NOT in_stock = TRUE; -- Комбинация условий SELECT * FROM games WHERE (genre = 'RPG' OR genre = 'Action') AND rating >= 8.5;

Специальные операторы

-- BETWEEN (между значениями) SELECT * FROM books WHERE price BETWEEN 300 AND 700; -- IN (входит в список значений) SELECT * FROM students WHERE class IN ('5А', '5Б', '5В'); -- LIKE (поиск по шаблону) SELECT * FROM books WHERE title LIKE 'Гарри%'; -- Начинается с "Гарри" SELECT * FROM books WHERE author LIKE '%Толстой'; -- Заканчивается на "Толстой" SELECT * FROM games WHERE name LIKE '%Mario%'; -- Содержит "Mario" -- IS NULL (проверка на отсутствие значения) SELECT * FROM students WHERE favorite_subject IS NULL; SELECT * FROM books WHERE publication_year IS NOT NULL;

Сортировка и ограничение результатов

ORDER BY — Сортировка

-- Сортировка по возрасту (по возрастанию) SELECT * FROM students ORDER BY age ASC; -- Сортировка по цене (по убыванию) SELECT * FROM books ORDER BY price DESC; -- Сортировка по нескольким полям SELECT * FROM students ORDER BY class ASC, age DESC; -- Сортировка по рейтингу игр SELECT name, rating FROM games ORDER BY rating DESC;

LIMIT — Ограничение количества

-- Выбрать первых 5 учеников SELECT * FROM students LIMIT 5; -- Выбрать 3 самые дорогие книги SELECT title, price FROM books ORDER BY price DESC LIMIT 3; -- Топ-10 игр по рейтингу SELECT name, rating FROM games ORDER BY rating DESC LIMIT 10; -- Пропустить первые 5 и взять следующие 10 (пагинация) SELECT * FROM books LIMIT 10 OFFSET 5;

Агрегатные функции

Агрегатные функции позволяют выполнять вычисления над группами данных: считать суммы, средние значения, находить максимумы и минимумы.

-- COUNT - посчитать количество записей SELECT COUNT(*) AS total_students FROM students; SELECT COUNT(*) FROM students WHERE class = '5А'; -- SUM - сумма значений SELECT SUM(price) AS total_price FROM books; -- AVG - среднее значение SELECT AVG(age) AS average_age FROM students; SELECT AVG(rating) AS avg_rating FROM games; -- MAX и MIN - максимальное и минимальное значения SELECT MAX(price) AS most_expensive FROM books; SELECT MIN(publication_year) AS oldest_book FROM books; -- Комбинация функций SELECT COUNT(*) AS total_games, AVG(rating) AS avg_rating, MAX(rating) AS best_rating FROM games;

GROUP BY — Группировка

GROUP BY позволяет группировать данные и применять агрегатные функции к каждой группе отдельно.

-- Посчитать количество учеников в каждом классе SELECT class, COUNT(*) AS student_count FROM students GROUP BY class; -- Средний возраст в каждом классе SELECT class, AVG(age) AS avg_age FROM students GROUP BY class; -- Количество игр по жанрам SELECT genre, COUNT(*) AS game_count FROM games GROUP BY genre ORDER BY game_count DESC; -- Средний рейтинг по жанрам SELECT genre, AVG(rating) AS avg_rating FROM games GROUP BY genre HAVING AVG(rating) > 8.0;

🔍 HAVING vs WHERE:
WHERE фильтрует строки ДО группировки.
HAVING фильтрует группы ПОСЛЕ группировки.

Объединение таблиц (JOIN)

JOIN позволяет объединять данные из нескольких таблиц. Это одна из самых мощных возможностей SQL!

Пример: База данных библиотеки

-- Создаём таблицу авторов CREATE TABLE authors ( id INT PRIMARY KEY, name VARCHAR(100), country VARCHAR(50) ); -- Создаём таблицу книг с ссылкой на автора CREATE TABLE books ( id INT PRIMARY KEY, title VARCHAR(200), author_id INT, year INT, FOREIGN KEY (author_id) REFERENCES authors(id) );

INNER JOIN

Возвращает только те записи, для которых есть соответствие в обеих таблицах.

-- Получить список книг с именами авторов SELECT books.title, authors.name, books.year FROM books INNER JOIN authors ON books.author_id = authors.id; -- С использованием псевдонимов (короче и читабельнее) SELECT b.title, a.name, a.country, b.year FROM books AS b INNER JOIN authors AS a ON b.author_id = a.id WHERE a.country = 'Россия';

LEFT JOIN

Возвращает все записи из левой таблицы и соответствующие из правой (или NULL, если соответствий нет).

-- Получить всех авторов и их книги (даже если книг нет) SELECT a.name, b.title FROM authors AS a LEFT JOIN books AS b ON a.id = b.author_id;

Практические примеры

Пример 1: База данных зоопарка

-- Создание таблицы CREATE TABLE zoo_animals ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(100), species VARCHAR(100), diet_type VARCHAR(50), age INT, habitat VARCHAR(100) ); -- Добавление данных INSERT INTO zoo_animals (name, species, diet_type, age, habitat) VALUES ('Симба', 'Лев', 'Хищник', 5, 'Саванна'), ('Дамбо', 'Слон', 'Травоядный', 12, 'Саванна'), ('Чико', 'Обезьяна', 'Всеядный', 3, 'Джунгли'), ('Белла', 'Панда', 'Травоядный', 7, 'Бамбуковый лес'); -- Найти всех хищников SELECT name, species FROM zoo_animals WHERE diet_type = 'Хищник'; -- Найти животных старше 5 лет SELECT * FROM zoo_animals WHERE age > 5 ORDER BY age DESC; -- Посчитать животных по среде обитания SELECT habitat, COUNT(*) AS animal_count FROM zoo_animals GROUP BY habitat;

Пример 2: Игровая коллекция

-- Создание таблицы игр CREATE TABLE my_games ( id INT PRIMARY KEY AUTO_INCREMENT, title VARCHAR(150), genre VARCHAR(50), platform VARCHAR(50), hours_played INT, completed BOOLEAN ); -- Добавление игр INSERT INTO my_games (title, genre, platform, hours_played, completed) VALUES ('Minecraft', 'Песочница', 'PC', 250, FALSE), ('The Legend of Zelda', 'Adventure', 'Switch', 85, TRUE), ('Fortnite', 'Battle Royale', 'PC', 120, FALSE), ('Super Mario Odyssey', 'Platformer', 'Switch', 45, TRUE); -- Найти игры, в которые играли больше 100 часов SELECT title, hours_played FROM my_games WHERE hours_played > 100 ORDER BY hours_played DESC; -- Найти все пройденные игры SELECT title, genre FROM my_games WHERE completed = TRUE; -- Посчитать общее время игры по платформам SELECT platform, SUM(hours_played) AS total_hours FROM my_games GROUP BY platform;

Пример 3: Учёт расходов

-- Создание таблицы расходов CREATE TABLE expenses ( id INT PRIMARY KEY AUTO_INCREMENT, category VARCHAR(50), description VARCHAR(200), amount DECIMAL(10, 2), expense_date DATE ); -- Добавление расходов INSERT INTO expenses (category, description, amount, expense_date) VALUES ('Еда', 'Обед в школе', 250.00, '2025-10-28'), ('Транспорт', 'Проезд на автобусе', 50.00, '2025-10-28'), ('Развлечения', 'Кино с друзьями', 500.00, '2025-10-29'), ('Книги', 'Учебник по программированию', 800.00, '2025-10-29'); -- Найти все расходы за сегодня SELECT * FROM expenses WHERE expense_date = '2025-10-29'; -- Посчитать общие расходы по категориям SELECT category, SUM(amount) AS total FROM expenses GROUP BY category ORDER BY total DESC; -- Найти самую дорогую покупку SELECT description, amount, expense_date FROM expenses ORDER BY amount DESC LIMIT 1;

Плюсы и минусы SQL

Плюсы 😊

  • Стандартизированный язык — работает с разными СУБД
  • Простой и понятный синтаксис
  • Очень быстрая работа с большими объёмами данных
  • Высокая востребованность на рынке труда
  • Мощные инструменты для анализа данных
  • Надёжность и проверенность временем
  • Используется везде: от сайтов до банков

Минусы 🤔

  • Различия в диалектах разных СУБД
  • Сложность при работе со сложными иерархиями
  • Может быть медленным без правильной оптимизации
  • Требуется понимание структуры данных
  • Ограниченные возможности для обработки неструктурированных данных

Популярные системы управления базами данных

СУБД Тип Особенности
MySQL Бесплатная Самая популярная, используется в веб-разработке
PostgreSQL Бесплатная Мощная, расширенные возможности, строгие стандарты
SQLite Бесплатная Лёгкая, встраиваемая, для мобильных приложений
Microsoft SQL Server Коммерческая Для Windows-серверов, интеграция с Microsoft
Oracle Database Коммерческая Для крупных предприятий, максимальная надёжность
💡 Совет для начинающих: Начни с MySQL или SQLite — они бесплатные, имеют отличную документацию и огромное сообщество. SQLite вообще не требует установки сервера!

Упражнения для практики

📝 Задача 1: Музыкальная коллекция

Создай таблицу для хранения твоей музыкальной коллекции с полями: название песни, исполнитель, альбом, год выпуска, длительность. Добавь 10 песен и напиши запросы для:

  • Поиска всех песен определённого исполнителя
  • Нахождения самой длинной песни
  • Подсчёта песен по годам выпуска

📝 Задача 2: Спортивная команда

Создай таблицу с данными о членах спортивной команды: имя, позиция, номер, количество голов, возраст. Напиши запросы для:

  • Вывода топ-3 бомбардиров
  • Нахождения среднего возраста команды
  • Списка всех нападающих

📝 Задача 3: Расписание уроков

Создай таблицу расписания: день недели, номер урока, предмет, учитель, кабинет. Напиши запросы для:

  • Вывода расписания на понедельник
  • Нахождения всех уроков математики
  • Подсчёта количества уроков в каждом кабинете

📝 Задача 4: Интернет-магазин

Создай две таблицы: "Товары" (название, категория, цена, количество) и "Заказы" (номер заказа, ID товара, количество, дата). Напиши запросы с JOIN для:

  • Вывода всех заказов с названиями товаров
  • Подсчёта общей суммы продаж
  • Нахождения самого популярного товара

📝 Задача 5: YouTube-канал

Создай таблицу видео: название, категория, количество просмотров, лайков, дата публикации. Напиши запросы для:

  • Топ-5 видео по просмотрам
  • Среднего количества лайков по категориям
  • Всех видео, опубликованных в этом месяце

Глоссарий терминов

База данных (Database)
Организованная коллекция структурированных данных, хранящихся в компьютерной системе.
СУБД (Система Управления Базами Данных)
Программное обеспечение для создания, управления и работы с базами данных.
Таблица (Table)
Набор связанных данных, организованных в строки и столбцы.
Запись (Row / Record)
Одна строка в таблице, представляющая один элемент данных.
Поле (Column / Field)
Столбец в таблице, определяющий один атрибут данных.
Первичный ключ (Primary Key)
Уникальный идентификатор каждой записи в таблице.
Внешний ключ (Foreign Key)
Поле, которое ссылается на первичный ключ другой таблицы, создавая связь между таблицами.
Запрос (Query)
Команда на языке SQL для извлечения или изменения данных.
Индекс (Index)
Структура данных, ускоряющая поиск и сортировку в таблице.
Транзакция (Transaction)
Последовательность операций с базой данных, выполняемых как единое целое.
NULL
Специальное значение, обозначающее отсутствие данных.
Нормализация
Процесс организации данных для уменьшения избыточности и улучшения целостности.

Где и как изучать SQL

🌐
Онлайн-платформы

SQLBolt, SQLZoo, W3Schools — бесплатные интерактивные курсы с практическими заданиями

💻
Практика

Установи SQLite или MySQL и создавай свои базы данных. Практика — лучший учитель!

📱
Мобильные приложения

SQL Tutorial, Learn SQL — приложения для изучения SQL на смартфоне в любое время

🎮
Игровые платформы

SQL Murder Mystery, SQL Island — изучай SQL через решение интересных задач и головоломок

Почему SQL важен

SQL — это фундаментальный навык для любого, кто работает с данными. Вот почему его стоит изучить:

🔍
Универсальность

SQL используется везде: в интернет-магазинах, социальных сетях, банках, больницах, играх. Практически любое приложение использует базы данных!

💼
Востребованность

Знание SQL требуется для множества профессий: разработчик, аналитик данных, data scientist, администратор баз данных и многих других.

🧠
Логическое мышление

SQL учит структурировать информацию, формулировать точные вопросы и работать с данными эффективно.

Быстрый старт

Базовые операции SQL можно освоить за несколько дней. Это один из самых доступных языков для начинающих!

Заключение

SQL — это мощный инструмент для работы с данными, который остаётся актуальным уже более 50 лет! Он прост в изучении, но при этом невероятно полезен. Знание SQL открывает двери во многие IT-профессии и помогает лучше понимать, как устроен цифровой мир вокруг нас.

Начни с простых запросов, экспериментируй с данными, создавай свои таблицы и базы данных. С каждым днём ты будешь становиться увереннее, и скоро сможешь работать даже с самыми сложными запросами!

🚀 Следующие шаги: Установи SQLite или MySQL, создай свою первую базу данных и начни практиковаться! Помни: лучший способ научиться SQL — это писать запросы. Чем больше практики, тем лучше результат!

За 50 минут вводного урока:

Онлайн — Бесплатно — 50 мин
  • Познакомитесь с подробной программой обучения программированию онлайн
  • Увидите, как ребёнок сделает свой первый проект в IT с нуля
  • Узнаете, как оформить налоговый вычет