Урок 82. MySQL. Транзакции

📁 Блок: Базы данных ⏱️ Время изучения: ~90 мин 🎯 Сложность: Средняя
#from #import #print #insert #update #values #if #not #decimal #try #except #with #as #for #in #raise #or #and #finally

⚡ Кратко: суть темы

MySQL. Транзакции — учимся управлять соединением с базой: подключаться без указания базы, выбирать её через USE, получать строки как словари через DictCursor, фиксировать изменения через commit(), массово вставлять данные через executemany() и откатывать ошибки через rollback().

  • Подключение без database=... позволяет создавать базы и переключаться между ними.
  • DictCursor возвращает строки в виде словарей с именами колонок в качестве ключей.
  • После INSERT, UPDATE, DELETE обязательно вызывай connection.commit().
  • executemany() выполняет один SQL-запрос с разными наборами параметров.
  • Внутри транзакции используй try ... except ... finally: при ошибке — rollback(), при успехе — commit().

Что запомнить: изменяющие запросы не сохраняются без commit(), а rollback() спасает данные при ошибке.

Частая ошибка: забыть вызвать commit() после вставки — данные исчезнут после закрытия соединения.

📖 О чём этот урок

После того как мы научились подключаться к MySQL и выполнять простые запросы, разберём более гибкие сценарии работы с базой: как подключиться без выбора конкретной базы, как получать результаты в удобном виде словарей, как сохранять изменения и как защитить данные от частичных обновлений через транзакции.

Что изучим

  • Подключение к серверу без указания базы данных и выбор базы через USE.
  • Использование DictCursor для доступа к результатам по именам колонок.
  • Метод commit() для фиксации изменений INSERT, UPDATE, DELETE.
  • Подключение к серверу с правами на изменение структуры базы.
  • Метод executemany() для массовых операций.
  • Транзакции и метод rollback() для отката изменений при ошибках.

📚 Что повторить перед изучением

  • ← Урок 80: MySQL и Python — подключение, курсор, параметризованные запросы.
  • ← Урок 81: Практикум 20 — закрепление работы с PyMySQL.
  • Исключения и конструкция try ... except (урок 48).
  • Контекстный менеджер with (урок 52).
  • Словари и распаковка **config (уроки 34–36).

🎯 Что изучать дальше