SQLite — это встраиваемая СУБД, которая хранит всю базу данных в одном файле. Благодаря модулю sqlite3, который включен в стандартную библиотеку Python, работа становится простой и удобной.
Модуль sqlite3 предоставляет интерфейс для работы с базами данных SQLite. Основные объекты и методы, которые вам стоит знать:
sqlite3.connect(database, ...)
: Этот метод используется для установления соединения с базой данных SQLite. Если файл базы данных не существует, он будет автоматически создан.conn.cursor()
: После установления соединения с базой данных (где conn является объектом соединения) вы можете создать объект курсора, который будет использоваться для выполнения SQL-запросов к базе данных и извлечения результатов.cursor.execute(sql, ...)
: Этот метод используется для выполнения SQL-запросов, таких как SELECT
, INSERT
, UPDATE
и DELETE
.cursor.fetchall()
: После выполнения SELECT-запроса вы можете использовать этот метод, чтобы извлечь все строки результата.conn.commit()
: Если вы вносите какие-либо изменения в базу данных (например, вставляете, обновляете или удаляете строки), то эти изменения не будут сохранены до тех пор, пока вы не вызовете этот метод.conn.close()
: После завершения работы с базой данных всегда рекомендуется закрывать соединение с помощью этого метода.Создать или подключиться к базе данных можно с помощью функции connect()
:
import sqlite3
# Создание (или подключение) к файлу базы данных
conn = sqlite3.connect('my_database.db')
# Создание объекта курсора
cursor = conn.cursor()
Работая с SQLite в Python, вы будете использовать стандартные SQL-запросы. Давайте рассмотрим подробнее основные операции CRUD (создание, чтение, обновление, удаление) с примерами на Python.
Одиночная вставка:
cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ("Elena", 28))
Выбрать все записи:
cursor.execute("SELECT * FROM users")
all_rows = cursor.fetchall()
for row in all_rows:
print(row)
Выбрать определенные записи с условием:
cursor.execute("SELECT * FROM users WHERE age > ?", (30,))
rows = cursor.fetchall()
for row in rows:
print(row)
Выбрать определенные столбцы:
cursor.execute("SELECT name FROM users")
names = cursor.fetchall()
for name in names:
print(name[0])
Обновление записи:
cursor.execute("UPDATE users SET age = ? WHERE name = ?", (32, "Elena"))
Обновление нескольких записей:
cursor.execute("UPDATE users SET age = age + 1 WHERE age < ?", (30,))
Удаление конкретной записи:
cursor.execute("DELETE FROM users WHERE name = ?", ("John",))
Удаление записей по условию:
cursor.execute("DELETE FROM users WHERE age < ?", (25,))
После выполнения любых операций вставки, обновления или удаления вам необходимо подтвердить изменения:
conn.commit()
После завершения всех операций закройте соединение:
conn.close()
Работа с SQLite в Python удобна и прямолинейна благодаря модулю sqlite3. Этот подход идеален для приложений, где необходима легковесная база данных без необходимости установки дополнительного серверного программного обеспечения. В следующих статьях мы рассмотрим возможности этой БД более подробно.
Содержание: