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

📝 Задания

📁 Блок: SQL / SQLite / Google Colab ⏱️ Время изучения: ~90 мин 🎯 Сложность: Средняя

⚡ Кратко: суть занятия

SQLite — лёгкая реляционная база данных без отдельного сервера: в Colab она хранится в обычном файле .db.

В Python подключение создаётся через sqlite3.connect('example_database.db'), а запросы выполняются через курсор или pandas.

Для изменений нужен conn.commit(): без него таблица или вставленные строки могут не сохраниться.

Минимальный пример: создать DataFrame, записать его через df.to_sql('employees', conn, if_exists='replace', index=False), затем прочитать через pd.read_sql_query().

SQL-запросы из занятия повторяют базовые действия: SELECT *, фильтр WHERE, сортировку ORDER BY, AVG и COUNT.

pandas удобен как мост: таблица живёт в DataFrame, а SQLite даёт возможность тренировать обычный SQL.

Топ-3 ошибки: забыть commit(), записать лишний индекс в таблицу, вставлять значения строкой вместо параметров ?.

Практическая работа из источника

1

Импортируйте библиотеки

Подключите pandas и sqlite3.

2

Создайте DataFrame

Используйте данные сотрудников: id, name, age, salary.

3

Создайте базу

Укажите путь example_database.db, создайте подключение и запишите таблицу employees.

4

Напишите запросы

Выберите все данные, сотрудников старше 30 лет, сотрудников с зарплатой больше 60000, отсортируйте по возрасту, посчитайте среднюю зарплату и количество сотрудников.

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

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

Вопрос 1

Что создаёт sqlite3.connect('example_database.db'), если файла ещё нет?

Вопрос 2

Зачем после CREATE TABLE и INSERT вызывают conn.commit()?

Вопрос 3

Какой плейсхолдер используется в примере вставки SQLite?

Вопрос 4

Что делает df.to_sql('employees', conn, if_exists='replace', index=False)?

Вопрос 5

Как получить результат SQL-запроса сразу как DataFrame?

Вопрос 6

Какой запрос выбирает сотрудников старше 30 лет?

Вопрос 7

Почему в учебном примере важно index=False?