📖 Теория
⚡ Кратко: суть занятия
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(), записать лишний индекс в таблицу, вставлять значения строкой вместо параметров ?.
SQLite в Colab: зачем это нужно
В источнике SQLite используется как учебная база внутри Colab или Jupyter. Она не требует отдельного сервера и подходит для небольших проектов, тестирования и отработки SQL-запросов.
Файл базы создаётся при подключении. Если указать example_database.db, Python откроет существующий файл или создаст новый в рабочей директории ноутбука.
import sqlite3
conn = sqlite3.connect('my_database.db')
cursor = conn.cursor()
Роль курсора и commit
cursor.execute() отправляет SQL-команду в SQLite. После команд, которые меняют данные или схему, нужен conn.commit(), потому что подключение работает транзакционно.
cursor.execute('''
CREATE TABLE users (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
age INTEGER,
email TEXT
)
''')
conn.commit()
Безопасная вставка данных
В источнике значения передаются через плейсхолдеры ?. Это лучше, чем собирать SQL-строку вручную: текстовые значения не ломают кавычки, а запрос остаётся читаемым.
cursor.execute(
'INSERT INTO users (name, age, email) VALUES (?, ?, ?)',
('John Doe', 25, 'johndoe@example.com')
)
conn.commit()
pandas как быстрый способ создать таблицу
В Colab удобно сначала описать данные как DataFrame, затем записать его в SQLite через to_sql(). В учебном примере таблица сотрудников создаётся из словаря Python.
import pandas as pd
data = {
'id': [1, 2, 3, 4, 5],
'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
'age': [25, 30, 35, 40, 45],
'salary': [50000, 60000, 70000, 80000, 90000]
}
df = pd.DataFrame(data)
df.to_sql('employees', conn, if_exists='replace', index=False)
if_exists='replace' удобен для учебного перезапуска ячейки, но в рабочем проекте может удалить старую таблицу перед записью. Перед реальным применением проверьте поведение to_sql() в документации pandas.