Вставка данных в таблицу SQLite с помощью Python — это прямолинейный процесс, благодаря встроенному модулю sqlite3. В этом разделе мы рассмотрим, как вставлять данные в таблицу SQLite используя Python.
Перед началом убедитесь, что у вас уже есть база данных SQLite и таблица, в которую вы хотите вставить данные.
import sqlite3
conn = sqlite3.connect('my_database.db')
cursor = conn.cursor()
Чтобы вставить одну запись в таблицу, используйте следующий код:
cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ('Alice', 30))
conn.commit()
В этом примере мы вставляем имя и возраст в таблицу users. Мы используем ?
в качестве маркеров параметров, чтобы избежать SQL-инъекций.
Если у вас есть множество записей для вставки, вы можете воспользоваться методом executemany()
:
data = [
('Bob', 25),
('Charlie', 35),
('David', 40)
]
cursor.executemany("INSERT INTO users (name, age) VALUES (?, ?)", data)
conn.commit()
Если вы хотите получить ID
вставленной записи (предполагая, что у вас есть столбец с автоинкрементом), вы можете использовать lastrowid
:
cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ('Eve', 28))
conn.commit()
print("Last inserted ID:", cursor.lastrowid)
После вставки всех данных и выполнения всех операций не забудьте закрыть соединение:
conn.close()
SQLite поддерживает операцию UPSERT
, которая позволяет обновлять запись, если она уже существует, или вставлять новую запись, если таковой нет. Это особенно полезно, если у вас есть уникальные ограничения на столбцы.
cursor.execute("""
INSERT INTO users (id, name, age) VALUES (1, 'Alice', 30)
ON CONFLICT(id) DO UPDATE SET name='Alice', age=30
""")
Вы можете вставлять данные в таблицу на основе выборки из другой таблицы:
cursor.execute("""
INSERT INTO users_archive SELECT * FROM users WHERE age > 60
""")
При вставке больших объемов данных рекомендуется использовать операции вставки в пакетах, чтобы улучшить производительность. Это можно сделать, обернув ваши операции вставки в одну транзакцию.
conn.execute('BEGIN TRANSACTION')
# Вставьте множество данных
conn.execute('COMMIT')
Если вам нужно сохранить двоичные данные, например, изображения, вы можете использовать тип данных BLOB
. Для этого необходимо преобразовать ваши двоичные данные в объект bytes в Python и затем вставить их в базу данных.
Временные таблицы могут быть полезны, если вы хотите выполнить ряд операций вставки, не влияя на основные таблицы. После завершения сеанса временные таблицы автоматически удаляются.
cursor.execute("CREATE TEMP TABLE temp_users (name TEXT, age INTEGER)")
Вставка данных в таблицу SQLite с помощью Python — это быстрый и безопасный способ сохранять информацию. Благодаря параметризованным запросам вы можете избегать рисков, связанных с SQL-инъекциями, и гарантировать надежное хранение данных. Независимо от того, создаете ли вы локальное приложение или серверное решение, SQLite в сочетании с Python предлагает мощные инструменты для работы с данными.
Содержание: