SQLLab
Теория· 8 мин· 15 XP

Как читать бизнес-задачу и превращать её в SQL

Зачем это нужно

В реальной работе аналитика никто не говорит «напиши SELECT с WHERE и ORDER BY». Вместо этого приходит сообщение от менеджера: «Слушай, можешь сделать список товаров дороже 2000₽ из Электроники? Нам нужно для акции, сначала самые дорогие, первые пять».

Ты уже знаешь все инструменты — SELECT, WHERE, AND, ORDER BY, LIMIT. Теперь нужно научиться переводить человеческий язык на SQL.

Как работает

Любое бизнес-требование можно разобрать по пяти вопросам:

ВопросЧто ищемSQL-конструкция
Что показать?столбцыSELECT name, price
Откуда взять?таблицаFROM products
При каком условии?фильтрыWHERE ...
В каком порядке?сортировкаORDER BY ...
Сколько строк?ограничениеLIMIT N

Это универсальный чек-лист. Используй его с любой задачей.

Синтаксис — ничего нового

sql
SELECT нужные_столбцы        -- Что показать?
FROM products                -- Откуда взять?
WHERE условия                -- При каком условии?
ORDER BY столбец ASC/DESC    -- В каком порядке?
LIMIT N;                     -- Сколько строк?

Разбор примера

Сообщение: «Нужен список дорогих товаров из Электроники для акции — только название и цена, сначала самые дорогие, первые пять»

Разбираем по вопросам:

  • Что показать? → name, price
  • Откуда? → products
  • При каком условии? → category = 'Электроника' AND price > 2000
  • В каком порядке? → ORDER BY price DESC
  • Сколько строк? → LIMIT 5
sql
SELECT name, price
FROM products
WHERE category = 'Электроника' AND price > 2000
ORDER BY price DESC, name ASC
LIMIT 5;

В Excel это заняло бы: добавить автофильтр на category, отфильтровать Электроника → добавить фильтр на price > 2000 → сортировать по price убыванием → вручную оставить 5 строк. SQL делает всё это одной командой.

Частые ошибки

  • Забывают ORDER BY, когда в задаче есть «первые N» — без сортировки порядок случаен
  • Пишут OR вместо AND: «товары из Электроники дороже 2000» — это AND, не OR
  • Выбирают SELECT * вместо конкретных столбцов — возвращают лишнее

Запомни

Переведи задачу в пять вопросов: Что? Откуда? При каком условии? В каком порядке? Сколько? — и запрос напишется сам.


Мини-практика

Разберите задачу по пяти вопросам:

«Покажи названия и цены товаров из категории Книги дешевле 1000₽, отсортированных по цене от дешёвых к дорогим»

Ответы
  • Что показать? → name, price
  • Откуда? → products
  • При каком условии? → category = 'Книги' AND price < 1000
  • В каком порядке? → ORDER BY price ASC
  • Сколько строк? → все (LIMIT не нужен)
sql
SELECT name, price
FROM products
WHERE category = 'Книги' AND price < 1000
ORDER BY price ASC;

Прочитайте урок до конца — прогресс засчитается автоматически