Занятие 05. Условные конструкции: операторы CASE, IF
⚡ Кратко: суть темы
Занятие учит создавать новые столбцы на основе условий. Разбираем оператор CASE, псевдонимы AS, функцию IF в MySQL, математические операции, строковые функции и конкатенацию.
CASE WHEN ... THEN ... ELSE ... END— переносит ветвление в SQL.ASзадаёт понятное имя вычисляемому столбцу.IF(condition, true, false)— короткая альтернатива CASE, но только в MySQL.
Что запомнить: CASE — стандарт SQL и работает почти везде; IF — специфика MySQL.
Частая ошибка: забыть END в конце блока CASE.
📝 Задания
База данных: northwind.
CASE
- Классифицируйте товары из
productsпоstandard_cost: «Дорогой» (> 50), «Средний» (20–50), «Дешевый» (≤ 20). - Оптимизируйте предыдущий запрос, убрав лишние проверки диапазонов. Помните, что SQL читает
WHENсверху вниз. - Выведите клиентов из
customersсо скидкой в зависимости от региона:WA/CA— 5%,ID/OR— 7%,UT/NV— 13%, остальные — 0. - Для заказов из
ordersсоздайте столбецorder_status: еслиshipped_date IS NULL— 'Ожидание отправки', еслиshipped_date = order_date— 'Отправлено в день заказа', иначе — 'Отправлено'.
IF
- Выведите название продукта и категорию «Expensive»/«Affordable» в зависимости от того, больше ли
standard_cost20.
Строковые функции и конкатенация
- Выберите последние 2 символа названия компании из
customers. - Выберите 3 цифры рабочего телефона клиента из
customers, начиная с 6-й позиции. - Составьте полное имя сотрудника из
employeesкакfirst_name last_name. - Замените пропуски в
employees.notesна строку'Not filled'.
Проверка понимания
Выберите один вариант ответа. После клика правильный ответ подсветится зелёным.
Вопрос 1
Для чего нужен CASE?
Вопрос 2
Чем завершается выражение CASE?
Вопрос 3
Что делает SELECT?
Вопрос 4
Почему в SQL важен явный список столбцов?
Вопрос 5
Как лучше форматировать сложный SQL-запрос?
Вопрос 6
Что означает NULL?
Вопрос 7
Почему запросы стоит проверять на маленькой выборке?