Как добавлять и читать данные в SQLite с помощью Python
Python поставляется со встроенным пакетом sqlite3, который мы можем импортировать в наш проект и использовать его API для подключения к базе данных SQLite и простого управления базой данных.
Подключить приложение Python к базе данных SQLite
Для соединения с базой данных SQLite используйте функцию connect().
import sqlite3
connection = sqlite3.connect('shows.db')
Если файл shows.db отсутствует, он будет создан и подключен. Если он есть, то он будет подключен.
Чтобы создать таблицу в базе данных, нам нужно использовать объект курсора. Чтобы создать объект курсора, используйте метод connection.cursor()
.
cursor = connection.cursor()
Теперь создайте таблицу базы данных с несколькими столбцами.
cursor.execute('''CREATE TABLE IF NOT EXISTS Shows
(Title TEXT, Director TEXT, Year INT)''')
В этом коде мы написали команду, которая создаст таблицу с ее именами столбцов и типами данных.
Вставить данные в базу данных SQLite с помощью Python
Чтобы добавить данные в SQLite с помощью Python, мы используем запрос INSERT INTO TABLE
. Мы выполним запрос INSERT с помощью курсора.
cursor.execute("INSERT INTO Shows VALUES ('Stranger Things', 'Shawn Levy', 2016)")
В этом коде мы написали запрос, и соответствующие значения столбцов - Stranger Things, Shawn Levy, 2016.
Чтение данных в базе данных SQLite с помощью Python.
Чтобы проверить, правильно ли вставлены данные в базу данных SQLite с помощью Python, используйте запрос SELECT
и распечатайте строку с помощью метода cursor.fetchone()
.
cursor.execute("SELECT * FROM Shows")
print(cursor.fetchone())
Последним шагом будет фиксация этих изменений для сохранения в базе данных и закрытие соединения.
Итак, наш полный код выглядит следующим образом.
import sqlite3
connection = sqlite3.connect('shows.db')
cursor = connection.cursor()
cursor.execute('''CREATE TABLE IF NOT EXISTS Shows
(Title TEXT, Director TEXT, Year INT)''')
cursor.execute(
"INSERT INTO Shows VALUES ('Stranger Things', 'Shawn Levy', 2016)")
cursor.execute("SELECT * FROM Shows")
print(cursor.fetchone())
connection.commit()
connection.close()
Запустите указанный выше файл в терминале.
python3 app.py
('Stranger Things', 'Shawn Levy', 2016)
Вы можете видеть, что мы возвращаем нашу строку, что означает, что данные успешно сохранены в базе данных SQLite.
Вставить несколько данных в базу данных с помощью Python
Чтобы вставить несколько строк в базу данных, сначала создайте данные, которые вы хотите вставить, а затем используйте запрос, чтобы добавить все данные за один раз.
moreShows = [('Money Heist', 'Alex Rodrigo', 2017),
('Dark', 'Baran bo Odar', 2017),
('1992 Scam', 'Hansal Mehta', 2020)]
Здесь мы создали кортеж Python, содержащий каждую строку в таблице Shows
.
Чтобы добавить несколько данных в базу данных SQLite с помощью Python, используйте метод cursor.executemany()
.
cursor.executemany("INSERT INTO Shows VALUES (?, ?, ?)", moreShows)
Здесь он будет брать все кортежи один за другим и вставлять их в базу данных с соответствующими полями.
Теперь давайте извлечем все данные из базы данных.
Чтобы получить все записи из базы данных SQLite, используйте метод cursor.fetchall()
.
Наш полный код, который добавляет несколько записей и показывает все записи пользователю:
import sqlite3
connection = sqlite3.connect('shows.db')
cursor = connection.cursor()
cursor.execute('''CREATE TABLE IF NOT EXISTS Shows
(Title TEXT, Director TEXT, Year INT)''')
moreShows = [('Money Heist', 'Alex Rodrigo', 2017),
('Dark', 'Baran bo Odar', 2017),
('1992 Scam', 'Hansal Mehta', 2020)]
cursor.executemany("INSERT INTO Shows VALUES (?, ?, ?)", moreShows)
records = cursor.execute("SELECT * FROM Shows")
print(cursor.fetchall())
connection.commit()
connection.close()
Запустите файл и посмотрите результат.
python3 app.py
[('Stranger Things', 'Shawn Levy', 2016),
('Money Heist', 'Alex Rodrigo', 2017), ('Dark', 'Baran bo Odar', 2017),
('1992 Scam', 'Hansal Mehta', 2020)]
Здесь вы можете видеть, что мы уже добавили строку Stranger Things в первом примере, сохраненную в базе данных. Вот почему он появляется во всех записях.
Это все для добавления и чтения данных в SQLite с использованием Python.