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

🔖 Справочник

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

Команды и операторы занятия

pip install mysql-connector-python

Установка Python-драйвера MySQL.

pip install mysql-connector-python

mysql.connector.connect

Открыть соединение с MySQL.

connection = mysql.connector.connect(host="...", user="...", password="...", database="sakila")

cursor.execute

Выполнить SQL-запрос.

cursor.execute("SELECT * FROM film LIMIT 10")

fetchall

Получить все строки результата.

rows = cursor.fetchall()

cursor.description

Получить имена столбцов результата.

columns = [column[0] for column in cursor.description]

pandas.DataFrame

Преобразовать результат в таблицу pandas.

df = pd.DataFrame(rows, columns=columns)

LIKE

Поиск по части строки.

SELECT * FROM film WHERE title LIKE "%LION%";

DENSE_RANK

Ранжирование строк оконной функцией.

DENSE_RANK() OVER (ORDER BY length DESC) AS length_rank

Справочники курса

SQL: справочник SQL. MongoDB: справочник MongoDB.