Урок 81. Практикум 20: Данные о сотрудниках. Часть 2
⚡ Кратко: суть темы
Практикум по работе с базой данных hr через PyMySQL. Пять последовательных задач: сортировка сотрудников по зарплате, выбор отдела по номеру, обработка пустого отдела, фильтрация по зарплате с проверкой оператора и повторный ввод при ошибке.
- Соединяем таблицы
employees,departmentsиjobsчерезJOIN. - Передаём пользовательские данные только через параметризованные запросы с
%s. - Проверяем номер отдела и знак сравнения до выполнения SQL.
- Используем
withдля автоматического закрытия соединения и курсора.
Что запомнить: пользовательский ввод — это потенциально опасные данные: проверяйте их в Python, а в SQL используйте только проверенные литералы и плейсхолдеры.
Частая ошибка: путать индекс списка, который видит пользователь (с 1), с индексом Python (с 0).
📖 О чём этот урок
Этот практикум продолжает урок 80 и посвящён реальной задаче: получению данных о сотрудниках из учебной базы hr. Мы будем комбинировать SQL-запросы с логикой на Python — сортировкой, фильтрацией, валидацией ввода и обработкой пустых результатов.
Что изучим
- Сортировку результата
SELECTчерезORDER BY. - Соединение трёх таблиц:
employees,departments,jobs. - Параметризованные запросы и безопасную вставку оператора сравнения из белого списка.
- Проверку пользовательского ввода: диапазон номеров, числовое значение зарплаты.
- Обработку пустого результата и цикл повторного ввода.
- Разбиение программы на функции для повторного использования кода.
📚 Что повторить перед изучением
- ← Предыдущий урок: MySQL и Python
- Параметризованные запросы с
%sи кортежем параметров. - Конструкция
withдля работы с соединением и курсором. - Обработка исключений
try ... except.