← К оглавлению занятия

Занятие 03. Практикум 1

📁 Блок: SQL / MySQL ⏱️ Время изучения: ~90 мин 🎯 Сложность: Практикум
#and #or #like #in #between #null

⚡ Кратко: суть темы

Практическое занятие для закрепления SELECT и WHERE. Решаем 13 задач на фильтрацию строк: диапазоны, пропуски, маски, комбинации AND/OR.

  • Используйте BETWEEN для числовых диапазонов.
  • Используйте LIKE для строковых масок.
  • Проверяйте NULL только через IS NULL.

Что запомнить: перед запуском сложного запроса убедитесь, что выбрана нужная база данных.

Частая ошибка: путать AND и OR при комбинировании условий.

📝 Задания практикума

База данных: northwind.

  1. Выведите список всех товаров из products, у которых standard_cost находится в диапазоне от 10 до 20.
  2. Найдите все заказы из orders, у которых payment_type не заполнен, и которые отправлены из Калифорнии (ship_state_province = 'CA').
  3. Выведите список всех сотрудников из employees, чья фамилия начинается на C.
  4. Найдите всех клиентов в customers, которые проживают в городах Minneapolis, Denver, Boston или работают в должности Purchasing Manager.
  5. Измените предыдущий запрос так, чтобы из результата выводились только записи, где state_province = 'CO'.
  6. Выведите все строки из products, где minimum_reorder_quantity входит в диапазон от 10 до 25 включительно, quantity_per_unit содержит слово boxes и standard_cost меньше 10.
  7. Измените предыдущий запрос, заменив AND на OR. Объясните, какие строки теперь выводятся.
  8. Подумайте, одинаковый ли результат дадут эти два запроса:
    WHERE a AND b OR c;
    WHERE a AND (b OR c);
  9. Выберите все строки из products, где quantity_per_unit IS NULL и reorder_level = 100.
  10. Выберите имена продуктов из products, где list_price превышает standard_cost более чем на 5.
  11. Выберите все строки из products, где reorder_level в два раза меньше target_level.
  12. Выберите все строки из products, для которых product_code содержит NWTSO и standard_cost = 1, либо list_price < 5 и target_level = 40.
  13. Выберите все строки из products, для которых product_code содержит NWTSO или standard_cost = 1, при условии что target_level = 40. Решите двумя способами.

Проверка понимания

Выберите один вариант ответа. После клика правильный ответ подсветится зелёным.

Вопрос 1

Что важнее всего в практическом задании?

Вопрос 2

Как безопаснее двигаться в практикуме?

Вопрос 3

Что делать, если решение не совпадает с ожидаемым результатом?

Вопрос 4

Что делает SELECT?

Вопрос 5

Почему в SQL важен явный список столбцов?

Вопрос 6

Как лучше форматировать сложный SQL-запрос?