Урок 8 · Слайд 1
🗄️

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

Как Excel, только умнее и быстрее

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

idимявозрастгород
1Алиса12Москва
2Боб14Питер
3Карл11Казань
📖 Словарик
База данных (БД)
Организованное хранилище структурированных данных.
"ВКонтакте хранит миллиарды сообщений в БД"
СУБД
Система управления базой данных (PostgreSQL, MySQL, SQLite).
"PostgreSQL — популярная СУБД для веб-проектов"
SQL
Язык запросов для работы с базами данных.
"SQL используют почти все базы данных"
Урок 8 · Слайд 2
📋

Таблицы: строки и столбцы

Как устроены данные в базе

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

id 🔑названиеавторгодстраниц
1Гарри ПоттерРоулинг1997309
2Властелин колецТолкин19541178
3ДюнаХерберт1965412
📖 Словарик
Первичный ключ (Primary Key)
Уникальный идентификатор каждой записи. Обычно id.
"id=2 — уникальный ключ книги 'Властелин колец'"
Поле (Column)
Столбец таблицы — тип данных для всех записей.
"Поле 'год' хранит год издания каждой книги"
Запись (Row)
Строка таблицы — данные об одном объекте.
"Строка с id=1 — это вся информация о книге"
Урок 8 · Слайд 3
🔍

SQL: SELECT — получаем данные

Спрашиваем базу данных

SQL запросы
-- Получить все записи
SELECT * FROM книги;

-- Только определённые поля
SELECT название, автор FROM книги;

-- С условием WHERE
SELECT * FROM книги
  WHERE год > 1990;

-- Сортировка по полю
SELECT * FROM книги
  ORDER BY год DESC;

-- Ограничить количество результатов
SELECT * FROM книги LIMIT 10;
📖 Словарик
SELECT
Выбирает данные из таблицы.
"SELECT * FROM users — все пользователи"
WHERE
Фильтр — выбирает только подходящие записи.
"WHERE возраст > 18 — только взрослые"
ORDER BY
Сортировка результатов. DESC — по убыванию, ASC — по возрастанию.
"ORDER BY дата DESC — сначала новые"
Урок 8 · Слайд 4
✏️

INSERT и UPDATE

Добавляем и изменяем данные

SQL запросы
-- Добавить новую запись
INSERT INTO книги (название, автор, год)
  VALUES ('Гарри Поттер', 'Роулинг', 1997);

-- Вставлено 1 строка

-- Изменить существующую запись
UPDATE книги
  SET год = 1998, страниц = 320
  WHERE id = 1;

-- Обновлено 1 строка

-- Вставить или обновить (UPSERT)
INSERT INTO настройки (ключ, значение)
  VALUES ('тема', 'тёмная')
  ON CONFLICT (ключ) DO UPDATE
  SET значение = EXCLUDED.значение;
📖 Словарик
INSERT INTO
Добавляет новую строку в таблицу.
"INSERT INTO users VALUES(...) — новый пользователь"
UPDATE ... SET
Изменяет значения в существующих строках.
"UPDATE books SET year=1998 WHERE id=1"
VALUES
Список значений для вставки в INSERT.
"VALUES ('Алиса', 12) — имя и возраст нового ученика"
Урок 8 · Слайд 5
🗑️

DELETE и WHERE

Удаление и фильтрация данных

SQL запросы
-- Удалить одну запись
DELETE FROM книги WHERE id = 3;

-- Удалить несколько записей
DELETE FROM книги WHERE год < 1950;

-- ОПАСНО! Удалить ВСЁ (без WHERE)
DELETE FROM книги; -- 😱

-- Сложные условия WHERE
SELECT * FROM книги
  WHERE год BETWEEN 1990 AND 2000
  AND страниц > 300
  OR автор = 'Роулинг';

-- Поиск по части строки
SELECT * FROM книги
  WHERE название LIKE '%Гарри%';
📖 Словарик
DELETE FROM
Удаляет строки из таблицы. ВСЕГДА используй WHERE!
"DELETE FROM tasks WHERE done = true"
BETWEEN
Условие "между двумя значениями".
"WHERE год BETWEEN 1990 AND 2000"
LIKE
Поиск по шаблону. % — любые символы.
"LIKE '%кот%' найдёт 'кот', 'котик', 'укотовился'"
Урок 8 · Слайд 6
🔗

JOIN: связываем таблицы

Данные из нескольких таблиц в одном запросе

SQL — JOIN
-- Таблица ученики: id, имя, класс_id
-- Таблица классы: id, название, учитель

-- Соединяем через JOIN
SELECT
  ученики.имя,
  классы.название,
  классы.учитель
FROM ученики
JOIN классы
  ON ученики.класс_id = классы.id;

-- Результат:
-- Алиса | 6А | Иванова
-- Боб | 8Б | Петров
📖 Словарик
JOIN
Объединяет строки из двух таблиц по условию.
"JOIN связывает учеников с их классами"
Внешний ключ (Foreign Key)
Поле, ссылающееся на первичный ключ другой таблицы.
"класс_id в таблице учеников — внешний ключ"
ON
Условие соединения таблиц в JOIN.
"ON ученики.класс_id = классы.id — условие связи"
Урок 8 · Слайд 7
🎮

Мини-проект: база для игры

Спроектируй базу данных для игры!

Задание: нарисуй таблицы для RPG-игры. Какие данные нужно хранить?

1
Таблица players: id, имя, уровень, опыт, hp, золото
2
Таблица items: id, название, тип, урон, защита, цена
3
Таблица inventory: id, player_id, item_id, количество
4
Таблица quests: id, название, описание, награда_золото, награда_опыт
5
Напиши SQL запрос: найди всех игроков выше 10 уровня
6
Напиши SQL запрос: покажи инвентарь игрока с id=1 через JOIN 🏆