Каждый раз, когда ты что-то покупаешь на Wildberries, ставишь лайк в VK или переводишь деньги через СБП — кто-то пишет в базу данных.
Не «сохраняет файл». Не «обновляет таблицу в Excel».
Именно пишет. Командой. В реальном времени. Без права на ошибку.
И за этим стоят три команды, которые на первый взгляд кажутся скучными — INSERT, UPDATE, DELETE. На второй взгляд — это инструменты, которыми управляют миллиардами строк данных каждый день.
Сначала — немного о том, что происходит за экраном
Представь: ты заходишь в онлайн-игру, выбираешь матч, нажимаешь «Найти игру».
В этот момент сервер вставляет тебя в очередь. База данных получает команду:
INSERT INTO matchmaking_queue (player_id, rank, game_mode, joined_at)
VALUES (8842301, 'Gold III', 'ranked', NOW());
Матч найден — обновляет статус:
UPDATE matchmaking_queue
SET status = 'matched', match_id = 99123
WHERE player_id = 8842301;
Игра закончилась — удаляет тебя из очереди:
DELETE FROM matchmaking_queue
WHERE player_id = 8842301;
Три команды. Один игровой сеанс. А теперь умножь это на миллион одновременных игроков.
INSERT: как данные появляются на свет
INSERT INTO — это рождение данных. Без этой команды не существует ни одной записи в базе.
Новый пользователь зарегистрировался в мессенджере? INSERT.
Ты написал сообщение? INSERT.
Стартап добавил новый товар в каталог? INSERT.
Казалось бы, что тут сложного. Но есть нюанс, который отличает джуна от крепкого разработчика:
Всегда явно указывай столбцы.
-- Так делают все, кто потом плачет на продакшне
INSERT INTO products VALUES (DEFAULT, 'Наушники', 3, 4990.00, TRUE);
-- Так делают те, кто спит спокойно
INSERT INTO products (name, category_id, price, in_stock)
VALUES ('Наушники', 3, 4990.00, TRUE);
Разница? Через полгода кто-то добавит в таблицу новый столбец — и первый вариант тихо сломается. Второй — даже не заметит.
Это не про синтаксис. Это про профессиональную привычку.
UPDATE: самая опасная команда в мире 🔥
Вот реальная история, которая происходит с кем-то каждую неделю.
Разработчик хочет обновить цену одного товара. Пишет:
UPDATE products
SET price = 49990.00;
Обновил один товар Обновил все товары в каталоге. Всем проставил одну цену. В 2 часа ночи. На продакшне.
Это не выдумка. Это классика жанра.
WHERE — это не опциональная деталь. Это смысл команды:
-- Вот так и только так
UPDATE products
SET price = 49990.00
WHERE id = 1;
А ещё есть профессиональный паттерн, который стоит запомнить навсегда:
Перед любым UPDATE — сначала SELECT с тем же WHERE. Убедись, что попадаешь в нужные строки. Потом — обновляй.
Именно так аналитики в стартапах обновляют цены для целых категорий, не боясь уронить прод:
-- Шаг 1: смотрим
SELECT id, name, price FROM products WHERE category_id = 3;
-- Шаг 2: обновляем
UPDATE products
SET price = ROUND(price * 1.10, 2)
WHERE category_id = 3;
DELETE: удалить легко, вернуть — почти никогда
TikTok удаляет видео, нарушающие правила? DELETE.
Ты удаляешь сообщение в чате? DELETE.
Маркетплейс снимает с продажи товар? DELETE или UPDATE флага — зависит от архитектуры.
И снова — WHERE решает всё.
Без него:
DELETE FROM products;
-- Поздравляю, у тебя пустой каталог.
С ним:
DELETE FROM products
WHERE id = 42;
-- Удалён ровно один товар.
Есть ещё одна деталь, которую понимаешь только когда сталкиваешься: база данных сама защищает данные от неправильного удаления. Если на товар есть заказы — внешний ключ не даст его удалить. Это не баг, это фича реляционной модели.
Транзакции: суперсила, о которой мало кто говорит новичкам
Представь: ты переводишь 5000 рублей другу через банковское приложение.
Система списывает деньги с твоего счёта ✅
Система падает с ошибкой при зачислении на счёт друга ❌
Деньги исчезли. Другу не пришли. Никто не виноват?
Именно от этого спасают транзакции — механизм «всё или ничего»:
BEGIN;
UPDATE accounts SET balance = balance - 5000 WHERE id = 101;
UPDATE accounts SET balance = balance + 5000 WHERE id = 202;
COMMIT; -- Только если оба шага успешны
Если что-то пошло не так — ROLLBACK, и база возвращается в исходное состояние. Как будто ничего не было.
Это фундамент финтеха, e-commerce и любой системы, где важна целостность данных. И это то, что отличает серьёзную базу данных от Google Таблиц.
Почему это важно именно сейчас
SQL — это не язык для работы с «табличками».
Это инструмент, которым управляют реальностью: выдачей контента, ценами, балансами, матчмейкингом, аналитикой роста стартапов.
Каждый раз, когда алгоритм Яндекс.Маркета рекомендует тебе товар — кто-то написал запрос, который обновил модель. Каждый раз, когда ИИ обучается на новых данных — кто-то вставил миллионы строк в хранилище.
INSERT, UPDATE, DELETE — три команды, которые стоят за этим всем.
И теперь ты знаешь, как они работают.
💡 Хочешь копнуть глубже? Полный учебный материал с детальными примерами, схемами и крутыми иллюстрациями ждёт тебя на нашем сайте!