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

📖 Теория

📁 Блок: 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 и оконную агрегацию.

Разбор темы

Соединение с MySQL

Источник описывает подключение через mysql-connector-python: нужны host, user, password и database. Это уровень Python-клиента, а не SQL-запроса.

Курсор

Cursor создаётся после подключения и выполняет SQL через execute. Затем fetchall получает строки результата.

Названия столбцов

cursor.description хранит метаданные результата. Из него можно взять имена колонок и передать их в pandas DataFrame.

DataFrame

DataFrame удобен для просмотра SQL-результата в Jupyter/Colab. SQL остаётся источником данных, pandas помогает анализировать таблицу.

sakila и связи

Повторение работает с базой sakila. Для фильмов и категорий используются film, film_category и category.

GROUP BY и HAVING

GROUP BY собирает фильмы по категориям, HAVING фильтрует уже агрегированные группы.

Оконные функции

AVG(length) OVER (PARTITION BY name) показывает среднюю длину категории рядом с каждой строкой фильма, не уменьшая число строк.

Проверить по документации: дополнительные формы синтаксиса, параметры драйверов и поведение отдельных стадий могут отличаться между версиями MySQL, MongoDB, Compass, Atlas или Python-библиотек. Перед использованием в проекте сверяйте детали с официальной документацией.