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

📖 Теория

📁 Блок: 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(), записать лишний индекс в таблицу, вставлять значения строкой вместо параметров ?.

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.