Как работать с SQLite в Python?

онлайн тренажер по питону
Онлайн-тренажер Python 3 для начинающих

Теория без воды. Задачи с автоматической проверкой. Подсказки на русском языке. Работает в любом современном браузере.

начать бесплатно

Как работать с SQLite в Python? Полное руководство для начинающих и опытных разработчиков

Работа с базами данных — одна из важнейших задач при разработке приложений. Если вам нужно лёгкое, встроенное решение без необходимости устанавливать отдельные серверы, то SQLite идеально подойдёт для ваших целей.

В связке с Python, благодаря стандартному модулю sqlite3, можно очень быстро создавать, изменять и управлять базами данных прямо из кода. В этой статье вы узнаете, как подключаться к SQLite, выполнять операции вставки данных (insert), обновления (update) и многое другое.


Что такое SQLite и почему его выбирают?

SQLite — это встраиваемая реляционная база данных, которая хранит всю информацию в одном файле. Она не требует отдельного сервера и отлично подходит для прототипирования, небольших проектов и мобильных приложений.

📌 Преимущества SQLite:

  • Не требует установки сервера.

  • Высокая скорость работы.

  • Простота в использовании.

  • Отличная интеграция с Python через модуль sqlite3.


Как подключиться к базе данных SQLite в Python?

python
import sqlite3 # Подключение к базе данных (если файла нет — он будет создан) conn = sqlite3.connect('my_database.db') # Создание курсора для выполнения SQL-запросов cursor = conn.cursor()

Создание таблицы в SQLite

python
cursor.execute(''' CREATE TABLE IF NOT EXISTS users ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, age INTEGER ) ''') conn.commit()

Вставка данных в таблицу — python sqlite3 insert

Один из самых частых запросов — как вставлять данные в таблицу SQLite?

python
cursor.execute(''' INSERT INTO users (name, age) VALUES (?, ?) ''', ('Иван', 30)) conn.commit()

📚 Примечание: Использование знаков ? защищает от SQL-инъекций.


Массовая вставка данных

python
users = [('Алексей', 25), ('Мария', 28), ('Сергей', 35)] cursor.executemany(''' INSERT INTO users (name, age) VALUES (?, ?) ''', users) conn.commit()

Чтение данных из таблицы

python
cursor.execute('SELECT * FROM users') rows = cursor.fetchall() for row in rows: print(row)

Обновление данных — python sqlite update / update sqlite3 python

Чтобы изменить данные, используйте оператор UPDATE.

python
cursor.execute(''' UPDATE users SET age = ? WHERE name = ? ''', (32, 'Иван')) conn.commit()

Вы обновили возраст пользователя с именем "Иван" на 32 года.


Удаление данных из таблицы

python
cursor.execute(''' DELETE FROM users WHERE name = ? ''', ('Сергей',)) conn.commit()

Как избежать ошибок при работе с базой данных?

  • Закрывайте соединения после работы:

python
conn.close()
  • Используйте конструкции try-except:

python
try: cursor.execute('SELECT * FROM users') print(cursor.fetchall()) except sqlite3.Error as e: print(f"Ошибка: {e}")

Использование контекстного менеджера для автоматического управления ресурсами

python
with sqlite3.connect('my_database.db') as conn: cursor = conn.cursor() cursor.execute('SELECT * FROM users') print(cursor.fetchall())

Контекстный менеджер сам закроет соединение, даже если возникнет ошибка.


FAQ — Часто задаваемые вопросы

1. Можно ли использовать SQLite для крупных проектов?

SQLite подходит для небольших и средних проектов. Для крупных — лучше использовать PostgreSQL или MySQL.


2. Как проверить, существует ли таблица перед её созданием?

Используйте CREATE TABLE IF NOT EXISTS, как показано выше.


3. Как избежать SQL-инъекций?

Используйте параметризованные запросы с ? вместо подстановки строк через f-строки.


4. Как получить количество записей в таблице?

python
cursor.execute('SELECT COUNT(*) FROM users') count = cursor.fetchone()[0] print(f'Количество записей: {count}')

5. Как обновить сразу несколько записей?

python
cursor.execute(''' UPDATE users SET age = age + 1 WHERE age < ? ''', (30,)) conn.commit()

6. Как получить ID последней вставленной записи?

python
cursor.execute(''' INSERT INTO users (name, age) VALUES (?, ?) ''', ('Екатерина', 27)) conn.commit() last_id = cursor.lastrowid print(f"ID новой записи: {last_id}")

Заключение

Работа с базами данных в Python с помощью SQLite проста и удобна. Вы узнали, как выполнять основные операции — вставку (insert), обновление (update), удаление и выборку данных. Использование стандартного модуля sqlite3 позволяет быстро организовать хранение данных без сложной настройки серверов.

Теперь вы легко справитесь с задачами по работе с базами данных в своих проектах!

Новости