Работа с SQLite в Python
Базы данных представляют собой один из способов хранения данных в структурированном виде. При этом они весят достаточно много и потребляют большой объем памяти. Возьмем к примеру PostgreSQL или Oracle. SQLite реализует облегченную версию базы данных. Она написана на языке С. Для некоторых приложений вполне достаточно использовать SQLite. Также, библиотека подходит и для учебных целей, так как синтаксис запросов сходен со стандартным языком SQL. На этапе прототипа с ее помощью, можно тестировать приложения работающие с базами данных, а затем переносить их на промышленный вариант. Для работы с SQLite в Python воспользуемся модулем sqlite3.
# импортируем сам модуль
import sqlite3
# чтобы воспользоваться модулем, создадим объект Сonnection, представляющий базу
# данных, а сами данные мы поместим в новый файл example.db
conn = sqlite3.connect('example.db')
# После создания объекта соединения с базой данных нужно создать объект cursor. Он позволяет делать SQL-запросы к базе методом execute. Используем переменную cur для хранения объекта:
cur = conn.cursor()
# выполним SQL команду методом execute
# команда CREATE TABLE создаст новую таблицу с именем товары
cur.execute('''CREATE TABLE товары
(дата text, товар text, количество real, цена real)''')
# вставим строку с данными
cur.execute("INSERT INTO товары VALUES ('2020-01-05','Журнал, 100 ,20.14)")
# сохраним изменения так, чтобы использовать их в следующем примере
conn.commit()
# по завершению работы закрываем соединение с базой, убедившись что все изменения сохранены
# иначе мы потеряем данные
conn.close()
Просмотр содержимого файла базы данных. Созданная нами таблица с данными была сохранена и мы можем просматривать данные или выполнять новые запросы:
import sqlite3
conn = sqlite3.connect('example.db')
conn = conn.cursor()
При выполнении кода SQL не рекомендуется использовать строковые операции Python.
# для создания безопасного запроса везде, где производится выборка по значению
# подставляем знаки вопроса и передаем искомое значение в кортеже
s = ('Журнал',)
conn.execute('SELECT * FROM товары WHERE symbol=?', s)
# данная операция необходима для избежания SQL инъекций в наш запрос
Таким образом мы научились создавать соединение к базе SQLite модулем sqlite3 Python, создали новый файл базы данных, создали таблицу с данными и осуществили безопасный запрос к нашей базе.
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.