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

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

⚡ Кратко: дополнительная практика

  1. Цветные принтеры — фильтр по color = 'y'.
  2. Все продукты производителя B — JOIN + фильтр по maker = 'B'.
  3. Производители ПК, но не ноутбуков — EXISTS или самосоединение Product.
  4. Производители ПК ≥ 450 МГц — JOIN + фильтр по speed >= 450.
  5. Средняя скорость ПК — AVG(speed).
  6. Средний размер экрана ноутбуков по производителям — JOIN + GROUP BY + AVG(screen).

🏠 Дополнительная практика по материалам занятия

Проверить по документации: извлечённый HTML-источник LMS для этого занятия содержит страницу авторизации, а не текст задания. Ниже оставлена учебная практика по схеме Product/PC/Laptop/Printer; перед выдачей студентам сверить с актуальным заданием в LMS.

1

Задание 1

Найдите все записи таблицы Printer для цветных принтеров.

2

Задание 2

Найдите номера моделей и цены всех имеющихся в продаже продуктов (любого типа) производителя B (латинская буква).

3

Задание 3

Найдите производителя, выпускающего ПК, но не ПК-блокноты.

4

Задание 4

Найдите производителей ПК с процессором не менее 450 МГц. Вывести: Maker.

5

Задание 5

Найдите среднюю скорость ПК.

6

Задание 6

Для каждого производителя, имеющего модели в таблице Laptop, найдите средний размер экрана выпускаемых им ПК-блокнотов. Вывести: maker, средний размер экрана.

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

  1. Откройте DBeaver, MySQL Workbench или другой SQL-клиент.
  2. Подключитесь к учебной базе данных.
  3. Убедитесь, что схема содержит таблицы Product, PC, Laptop и Printer.
  4. Создайте новый SQL-скрипт и выполняйте каждый запрос по очереди.

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

1

Задание 1 — цветные принтеры

В таблице Printer цветные принтеры помечены color = 'y'.

SELECT *
FROM Printer
WHERE color = 'y';
2

Задание 2 — продукты производителя B

Соединяем Product с каждой из таблиц характеристик и объединяем результаты.

SELECT model, price
FROM Product
JOIN PC USING (model)
WHERE maker = 'B'

UNION

SELECT model, price
FROM Product
JOIN Laptop USING (model)
WHERE maker = 'B'

UNION

SELECT model, price
FROM Product
JOIN Printer USING (model)
WHERE maker = 'B';
3

Задание 3 — производители ПК, но не ноутбуков

Выбираем производителей ПК и исключаем тех, кто есть в ноутбуках.

SELECT DISTINCT maker
FROM Product
WHERE type = 'PC'
  AND maker NOT IN (
      SELECT maker
      FROM Product
      WHERE type = 'Laptop'
  );
4

Задание 4 — производители ПК ≥ 450 МГц

Соединяем Product и PC, фильтруем по скорости процессора.

SELECT DISTINCT maker
FROM Product
JOIN PC USING (model)
WHERE speed >= 450;
5

Задание 5 — средняя скорость ПК

Агрегирующая функция AVG считает среднее.

SELECT AVG(speed) AS avg_speed
FROM PC;
6

Задание 6 — средний размер экрана ноутбуков по производителям

Соединяем Product и Laptop, группируем по производителю и считаем средний экран.

SELECT maker, AVG(screen) AS avg_screen
FROM Product
JOIN Laptop USING (model)
GROUP BY maker;

✅ Проверка

  1. Выполните каждый запрос в SQL-клиенте.
  2. Сравните результат с формулировкой задачи.
  3. Для заданий с DISTINCT проверьте отсутствие дублей.
  4. Для заданий с агрегацией убедитесь, что используется HAVING, если нужна фильтрация групп.