Вставка одной или несколько строк в таблицу sqlite3 в Python

Вы можете вставить одну или несколько строк в таблицу sqlite3 с помощью метода execute().

В этом руководстве мы пройдем последовательность шагов, необходимых для вставки одной или нескольких строк в таблицу в базе данных sqlite с использованием библиотеки sqlite3. Также мы узнаем, как проверить успешность вставки строки.

Чтобы вставить строку в таблицу sqlite3, выполните следующие действия:

  1. Создайте соединение с вашей базой данных sqlite3.
  2. Подведите курсор к соединению.
  3. Создайте таблицу, если она отсутствует, или проверьте, присутствует ли таблица.
  4. Если таблица присутствует, используйте метод execute() для курсора, передав запрос вставки SQL.

Вы можете проверить, успешно ли вставлена строка, с помощью cursor.lastrowid(). Мы увидим этот скрипт в примере 2.

Пример 1

В следующем примере мы создали таблицу, если она не существует, а затем использовали запрос INSERT INTO для вставки записи в таблицу.

import sqlite3

conn = sqlite3.connect('mysqlite.db')
c = conn.cursor()

#create table
c.execute('''CREATE TABLE IF NOT EXISTS students
             (rollno real, name text, class real)''')

c.execute('''INSERT INTO students
             VALUES(1, 'Alex', 8)''')
			 
#commit the changes to db			
conn.commit()
#close the connection
conn.close()

Пример 2

Чаще всего нам действительно нужно знать, действительно ли сработал запрос INSERT INTO. Нам нужно знать, успешно ли вставлена запись.

Чтобы узнать это, мы можем проверить идентификатор последней строки, который вставлен курсором соединения sqlite3. Если lastrowid не равен нулю 0, то мы можем программно гарантировать, что вставка прошла успешно.

import sqlite3

conn = sqlite3.connect('mysqlite.db')
c = conn.cursor()

#create table
c.execute('''CREATE TABLE IF NOT EXISTS students
             (rollno real, name text, class real)''')

c.execute('''INSERT INTO students
             VALUES(1, 'Glen', 8)''')

print(c.lastrowid)
			 
#commit the changes to db			
conn.commit()
#close the connection
conn.close()

Вывод:

2

Если вы видите, что на консоль выводится ненулевой идентификатор, значит, ваш оператор INSERT INTO сработал для вас. Если вы получили ноль, вам нужно отладить вашу программу.

Заключение

В этом руководстве на примерах Python мы узнали, как вставлять строки в таблицу sqlite3.

Как вставить несколько строк?

Чтобы вставить несколько записей в таблицу, выполните следующие действия:

  1. Подготовьте соединение с базой данных, а затем получите курсор.
  2. Поместите все свои записи в список.
  3. Используйте метод executemany() и передайте ему список запросов и записей в качестве аргументов.

Пример 1

В следующем примере мы вставим три записи в таблицу.

import sqlite3

conn = sqlite3.connect('mysqlite.db')
c = conn.cursor()

#records or rows in a list
records = [(1, 'Glen', 8),
			(2, 'Elliot', 9),
			(3, 'Bob', 7)]

#insert multiple records in a single query
c.executemany('INSERT INTO students VALUES(?,?,?);',records);

print('We have inserted', c.rowcount, 'records to the table.')

#commit the changes to db			
conn.commit()
#close the connection
conn.close()

Чтобы проверить, успешно ли выполнен запрос и вставлены ли все три записи, мы напечатали свойство cursor.rowcount.

Вывод:

We have inserted 3 records to the table.

Мы научились вставлять несколько записей в таблицу sqlite3 в одном запросе с помощью примеров.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *