Урок 80. MySQL и Python

📁 Блок: Базы данных ⏱️ Время изучения: ~90 мин 🎯 Сложность: Средняя
#close #for #in

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

Шесть практических задач от простого подключения до безопасного запроса с пользовательским вводом и использования with.

  1. Подключись и выведи все отделы.
  2. Напиши параметризованный SELECT.
  3. Вставь новую запись и сохрани изменения.
  4. Запроси данные от пользователя безопасно.
  5. Перепиши код через with и обработку ошибок.
  6. Подготовься к домашнему заданию: выведи страны с нумерацией.

📝 Практические задания

Все задания используют базу hr или учебную базу world. Подставьте свои параметры подключения к MySQL.

1

Подключение и список отделов

Уровень: начальный

Подключитесь к базе данных hr и выведите все строки из таблицы departments. Используйте итерацию по курсору.

2

Параметризованный SELECT

Уровень: начальный

Напишите программу, которая выводит сотрудников заданного отдела. Используйте плейсхолдер %s и передайте department_id кортежем.

3

Добавление нового отдела

Уровень: средний

Вставьте в таблицу departments новый отдел с названием "Data Science" и location_id = 1700. Не забудьте вызвать connection.commit() и вывести количество добавленных строк.

4

Безопасный запрос по вводу пользователя

Уровень: средний

Запросите у пользователя department_id и выведите название отдела из таблицы departments. Обязательно используйте параметризованный запрос — никаких f-string.

5

Рефакторинг на with и обработку ошибок

Уровень: средний

Перепишите задание 1 с использованием:

  • контекстного менеджера with для соединения и курсора;
  • словаря конфигурации config и распаковки **config;
  • обработки ошибок try ... except pymysql.MySQLError.
6

Подготовка к домашнему заданию: список стран

Уровень: выше среднего

Подключитесь к базе world и выведите названия всех стран из таблицы country с нумерацией:

1. Aruba
2. Afghanistan
...

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

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

Вопрос 1

Какой стиль имён переменных обычно рекомендует PEP 8?

Вопрос 2

Зачем использовать f-strings в современном Python?

Вопрос 3

Когда полезен ранний возврат из функции?

Вопрос 4

Что делает аннотация типа в Python?

Вопрос 5

Как лучше обрабатывать ожидаемую ошибку преобразования?

Вопрос 6

Чем отличается = от ==?

Вопрос 7

Что делает print()?