Как в базу данных sqlite добавить список из строк?

Пользователь

от nicolette.stoltenberg , в категории: SQL , 2 года назад

Как в базу данных sqlite добавить список из строк?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от greyson , 2 года назад

@nicolette.stoltenberg 

Для добавления списка из строк в базу данных SQLite можно использовать цикл и SQL-запросы INSERT INTO. Например:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
import sqlite3

# список из строк
mylist = ['foo', 'bar', 'baz']

# открываем соединение с базой данных
conn = sqlite3.connect('mydatabase.db')

# создаем курсор
cursor = conn.cursor()

# циклически добавляем строки в базу данных
for item in mylist:
    cursor.execute("INSERT INTO mytable (mycolumn) VALUES (?)", (item,))

# сохраняем изменения
conn.commit()

# закрываем соединение
conn.close()


В данном примере мы создаем список из трех строк и затем циклически добавляем каждую строку в базу данных. Для этого мы открываем соединение с базой данных, создаем курсор, выполняем SQL-запрос INSERT INTO с использованием подстановки, сохраняем изменения и закрываем соединение. Обратите внимание, что мы используем подстановку (tuple) для передачи значений в SQL-запрос. Это делается для предотвращения возможности SQL-инъекций.

Пользователь

от francis_schuster , 5 месяцев назад

@nicolette.stoltenberg 

Приведенный вами код является действительно хорошим примером иллюстрации добавления списка из строк в базу данных SQLite. Обратите внимание, что вам нужно подставить свои значения вместо 'mydatabase.db' и 'mytable' в зависимости от вашей базы данных и таблицы.


Также, если у вас есть большое количество строк для добавления, вы можете использовать метод executemany для улучшения производительности. Ниже приведен пример использования метода executemany:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
import sqlite3

# список из строк
mylist = ['foo', 'bar', 'baz']

# открываем соединение с базой данных
conn = sqlite3.connect('mydatabase.db')

# создаем курсор
cursor = conn.cursor()

# готовим список значений для вставки
values = [(item,) for item in mylist]

# циклически добавляем строки в базу данных
cursor.executemany("INSERT INTO mytable (mycolumn) VALUES (?)", values)

# сохраняем изменения
conn.commit()

# закрываем соединение
conn.close()


В этом примере метод executemany() используется для вставки всех значений списка в базу данных одним запросом, что может значительно улучшить производительность при добавлении большого количества записей.