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

⚠️ Ошибки

📁 Блок: Revision / MySQL и Colab ⏱️ Время изучения: ~90 мин 🎯 Сложность: Повторение

⚡ Кратко: суть занятия

Revision 1 повторяет подключение MySQL из Python и практику SQL по базе sakila.

В Python используется mysql-connector-python: подключение, cursor, execute, fetchall, description, DataFrame и close.

SQL-повторение начинается с поиска фильмов по LIKE "%LION%" и подсчёта таких фильмов.

JOIN film, film_category и category нужен для вывода фильмов с категориями.

ORDER BY length DESC LIMIT 10 показывает самые длинные фильмы.

GROUP BY category и HAVING фильтруют категории по количеству фильмов.

Оконные функции AVG(...) OVER (PARTITION BY name) и DENSE_RANK() OVER (...) добавляют агрегаты без схлопывания строк.

Топ-3 ошибки: забыть закрыть соединение, фильтровать Horror по неверному category_id, путать GROUP BY и оконную агрегацию.

Типичные ошибки

Не закрыть соединение

Симптом: В Colab остаются открытые ресурсы.

Исправление: В конце вызывайте cursor.close() и connection.close().

description читают до execute

Симптом: Колонки пустые или не от того запроса.

Исправление: Берите cursor.description после выполнения SELECT.

HAVING заменяют WHERE

Симптом: Фильтрация по COUNT не работает.

Исправление: WHERE фильтрует строки до группировки, HAVING — группы после GROUP BY.

Оконная функция без PARTITION BY

Симптом: Среднее считается по всем фильмам, а не по категории.

Исправление: Добавьте OVER (PARTITION BY c.name).

Ранг сортируется по возрастанию

Симптом: Самые короткие фильмы получают первый ранг.

Исправление: Для самых длинных используйте ORDER BY length DESC.