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

Занятие 23. Практикум 6

📁 Блок: SQL / MySQL / Связи и JOIN ⏱️ Время изучения: ~90 мин 🎯 Сложность: Практикум
#select #union #join #where #null #group #by #like

⚡ Кратко: задания

  • Объедините компании из employees, customers, suppliers.
  • Найдите сотрудников без привилегий.
  • Расшифруйте заказы для Seattle через LEFT JOIN.
  • Посчитайте транзакции по типу, исключив Sold.

📝 Задания для самостоятельной работы

Все задания выполняются в базе northwind.

Задание 1. UNION ALL трёх таблиц

Объедините с помощью UNION ALL названия компаний сотрудников из таблицы employees, названия компаний клиентов из таблицы customers и названия компаний поставщиков из таблицы suppliers.

Задание 2. Источник строки

Объясните, почему в предыдущем запросе не стоит использовать UNION (без ALL). Добавьте к запросу столбец, показывающий, из какой таблицы была взята запись.

Задание 3. Сотрудники без привилегий

У каких сотрудников в таблице employees нет привилегий (таблица employee_privileges)? Выведите имя и фамилию.

Задание 4. Расшифровка inventory_transactions

Работаем с таблицей inventory_transactions. Выведите transaction_created_date, а также название типа транзакции и название продукта.

Задание 5. Подсчёт транзакций по типу

Используя предыдущий запрос, посчитайте количество транзакций по типу. Оставьте только те типы транзакций, в которых отсутствует слово 'Sold'.

Задание 6. Расшифровка заказов Seattle

В таблице orders расшифруйте значения всех столбцов, в именах которых присутствует 'id' и для которых в базе данных имеются соответствующие таблицы. Выведите все строки, в которых ship_city = 'Seattle'. Объясните, почему в данном случае важно использовать LEFT JOIN.

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

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

Вопрос 1

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

Вопрос 2

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

Вопрос 3

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

Вопрос 4

Что делает SELECT?

Вопрос 5

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

Вопрос 6

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