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

🏠 Домашнее задание

⚡ Кратко: домашнее задание

  1. Выполните 10 задач практикума в DBeaver.
  2. Оформите запросы в едином стиле.
  3. Сохраните как practice_2.sql и загрузите на платформу.

🏠 Домашнее задание

Для выполнения домашнего задания используется база данных с доступом на чтение: hostname: ich-db.edu.itcareerhub.de, username: ich1, password: password.

1

Задача 1

Из таблицы inventory_transactions выведите столбец quantity и вычисляемый столбец category: 'Almost finish' при quantity < 20, иначе 'Enough'. Решите через IF и CASE.

2

Задача 2

Из таблицы purchase_order_details выведите строки с purchase_order_id BETWEEN 90 AND 100. Добавьте категорию по quantity: 'small' (< 30), 'medium' (30–70), 'large' (остальные).

3

Задача 3

Перепишите задачу 2 через вложенные IF.

4

Задача 4

Уникальные purchase_order_id со строками, где unit_cost > 10, отсортированные по убыванию.

5

Задача 5

Пять строк из customers с job_title = 'Owner', начиная со второй, отсортированные по state_province.

6

Задача 6

Уникальные product_id из order_details, где quantity * unit_price > 200, отсортированные по возрастанию, первые 7.

7

Задача 7

Инициалы сотрудников из employees.

8

Задача 8

В таблице orders замените NULL в payment_type на 'No data' через IF и CASE.

9

Задача 9

Имя и фамилия клиентов из customers в верхнем регистре.

10

Задача 10

Три цифры после кода из business_phone таблицы employees.

🛠️ Подготовка окружения

  1. Откройте DBeaver или MySQL Workbench.
  2. Подключитесь к ich-db.edu.itcareerhub.de с учётными данными ich1 / password.
  3. Выполните USE northwind; в начале скрипта.
  4. Создайте файл practice_2.sql.

📝 Пошаговое решение

Полные решения приведены в разделе Решения. Ниже — рекомендации по оформлению файла:

1

Шаг 1 — подключение

USE northwind;
2

Шаг 2 — оформление каждого запроса

-- Задача 1: классификация остатков через CASE
SELECT quantity,
       CASE
           WHEN quantity < 20 THEN 'Almost finish'
           ELSE 'Enough'
       END AS category
FROM inventory_transactions;

-- Задача 1: тот же результат через IF
SELECT quantity,
       IF(quantity < 20, 'Almost finish', 'Enough') AS category
FROM inventory_transactions;
3

Шаг 3 — сохранение

Сохраните все запросы в файл practice_2.sql и загрузите на платформу.

✅ Проверка

  1. Запросы 1–3 дают одинаковые или эквивалентные категории для задачи 2.
  2. В задаче 5 возвращается ровно 5 строк и первая из них — вторая по порядку.
  3. В задаче 6 уникальные product_id не повторяются и отсортированы по возрастанию.
  4. В задаче 10 проверьте формат телефона в таблице — позиция подстроки зависит от наличия пробела после скобок.