Как установить sqlite3 python

Руководство по SQLite в Python

SQL и Python — обязательные инструменты для любого специалиста в сфере анализа данных. Это руководство — все, что вам нужно для первоначальной настройки и освоения основ работы с SQLite в Python. Оно включает следующие пункты:

SQLite3 (часто говорят просто SQLite) — это часть стандартного пакета Python 3, поэтому ничего дополнительно устанавливать не придется.

Что будем создавать

В процессе этого руководства создадим базу данных в SQLite с помощью Python, несколько таблиц и настроим отношения:

Как установить sqlite3 python. Смотреть фото Как установить sqlite3 python. Смотреть картинку Как установить sqlite3 python. Картинка про Как установить sqlite3 python. Фото Как установить sqlite3 python

Типы данных SQLite в Python

SQLite для Python предлагает меньше типов данных, чем есть в других реализациях SQL. С одной стороны, это накладывает ограничения, но, с другой стороны, в SQLite многое сделано проще. Вот основные типы:

К сожалению, других привычных для SQL типов данных в SQLite нет.

Первые шаги с SQLite в Python

Начнем руководство с загрузки библиотеки. Для этого нужно использовать следующую команду:

Следующий шаг — создание базы данных.

Создание базы данных SQLite в Python

Если файл уже существует, то функция connect осуществит подключение к нему.

перед строкой с путем стоит символ «r». Это дает понять Python, что речь идет о «сырой» строке, где символы «/» не отвечают за экранирование.

Функция connect создает соединение с базой данных SQLite и возвращает объект, представляющий ее.

Резидентная база данных

Еще один способ создания баз данных с помощью SQLite в Python — создание их в памяти. Это отличный вариант для тестирования, ведь такие базы существуют только в оперативной памяти.

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

Создание объекта cursor

Теперь выполнять запросы можно следующим образом:

Обратите внимание на то, что сами запросы должны быть помещены в кавычки — это важно. Это могут быть одинарные, двойные или тройные кавычки. Последние используются в случае особенно длинных запросов, которые часто пишутся на нескольких строках.

Создание таблиц в SQLite в Python

Пришло время создать первую таблицу в базе данных. С объектами соединения ( conn ) и cursor ( cur ) это можно сделать. Будем следовать этой схеме.

Как установить sqlite3 python. Смотреть фото Как установить sqlite3 python. Смотреть картинку Как установить sqlite3 python. Картинка про Как установить sqlite3 python. Фото Как установить sqlite3 python

В коде выше выполняются следующие операции:

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

После исполнения этих двух скриптов база данных будет включать две таблицы. Теперь можно добавлять данные.

Добавление данных с SQLite в Python

В Python часто приходится иметь дело с переменными, в которых хранятся значения. Например, это может быть кортеж с информацией о пользователе.

Если его нужно загрузить в базу данных, тогда подойдет следующий формат:

В данном случае все значения заменены на знаки вопроса и добавлен параметр, содержащий значения, которые нужно добавить.

Важно заметить, что SQLite ожидает получить значения в формате кортежа. Однако в переменной может быть и список с набором кортежей. Таким образом можно добавить несколько пользователей:

Но нужно использовать функцию executemany вместо обычной execute :

SQLite и предотвращение SQL-инъекций

Скрипты для загрузки данных

Следующие скрипты можно скопировать и вставить для добавления данных в обе таблицы:

Используйте следующие запросы:

Получение данных с SQLite в Python

Следующий момент касательно SQLite в Python — выбор данных. Структура формирования запроса та же, но к ней будет добавлен еще один элемент.

Использование fetchone() в SQLite в Python

Она вернет следующее:

Использование fetchmany() в SQLite в Python

Он вернет следующее:

Использование fetchall() в SQLite в Python

Функцию fetchall() можно использовать для получения всех результатов. Вот что будет, если запустить скрипт:

Удаление данных в SQLite в Python

Теперь рассмотрим процесс удаления данных с SQLite в Python. Здесь та же структура. Предположим, нужно удалить любого пользователя с фамилией «Parker». Напишем следующее:

Если затем сделать следующей запрос:

Будет выведен пустой список, подтверждающий, что запись удалена.

Объединение таблиц в SQLite в Python

Наконец, посмотрим, как использовать объединение данных для более сложных запросов. Предположим, нужно сгенерировать запрос, включающий имя и фамилию каждого покупателя заказа.

Для этого напишем следующее:

Тот же подход работает с другими SQL-операциями.

Выводы

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

Источник

Работа с базой данных SQLite в Python – примеры

Установка Python

Используйте следующий код:

Как установить sqlite3 python. Смотреть фото Как установить sqlite3 python. Смотреть картинку Как установить sqlite3 python. Картинка про Как установить sqlite3 python. Фото Как установить sqlite3 python

Нажмите y, и установка будет завершена в течение нескольких секунд.

Установка SQLite

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

Примечание. Чтобы подключить SQLite к Python, вам не нужно устанавливать модуль подключения отдельно, поскольку он поставляется по умолчанию вместе с Python версии 2.5.x и выше.

Соединение SQLite с Python

Создайте файл python “connect.py” со следующим кодом:

Выполните следующий оператор в командной строке:

Как установить sqlite3 python. Смотреть фото Как установить sqlite3 python. Смотреть картинку Как установить sqlite3 python. Картинка про Как установить sqlite3 python. Фото Как установить sqlite3 python

Соединение создается с базой данных javatpoint. Теперь вы можете создать таблицу.

Создание таблицы

Создайте таблицу «Сотрудники» в базе данных «javatpoint».

Создайте файл python createtable.py со следующим кодом:

Выполните следующий оператор в командной строке:

Как установить sqlite3 python. Смотреть фото Как установить sqlite3 python. Смотреть картинку Как установить sqlite3 python. Картинка про Как установить sqlite3 python. Фото Как установить sqlite3 python

В базе данных javatpoint создается таблица «Сотрудники».

Вставка записей

Вставьте несколько записей в таблицу «Сотрудники».

Создайте файл python “connection.py” со следующим кодом:

Выполните следующий оператор в командной строке:

Как установить sqlite3 python. Смотреть фото Как установить sqlite3 python. Смотреть картинку Как установить sqlite3 python. Картинка про Как установить sqlite3 python. Фото Как установить sqlite3 python

Записи успешно вставлены.

Выбор записи

Теперь вы можете получать и отображать свои записи из таблицы «Сотрудники» с помощью оператора SELECT.

Создайте файл python “select.py” со следующим кодом:

Выполните следующий оператор в командной строке:

Как установить sqlite3 python. Смотреть фото Как установить sqlite3 python. Смотреть картинку Как установить sqlite3 python. Картинка про Как установить sqlite3 python. Фото Как установить sqlite3 python

Просмотрите все записи, которые вы вставили ранее. С помощью тех же процедур вы можете обновить и удалить таблицу в базе данных SQLite, используя Python.

Источник

Как работает модуль sqlite3 в Python 3

SQLite – это файловая база данных SQL, которая поставляется в комплекте с Python и может использоваться в приложениях Python, устраняя необходимость устанавливать дополнительное программное обеспечение.

В этом руководстве мы поговорим о модуле sqlite3 в Python 3. Чтобы потренироваться, мы создадим соединение с базой данных SQLite, добавим в эту БД таблицу, вставим данные, а также извлечем и отредактируем их.

Предположим, у нас есть аквариум и мы хотим создать БД, чтобы хранить в ней данные о рыбах, которые в нем живут.

Требования

Чтобы получить максимальную пользу от этого руководства, вы должны иметь некоторое представление о работе с Python и некоторый базовый опыт работы с SQL.

Для получения необходимой справочной информации вы можете просмотреть эти ресурсы:

1: Создание подключения к базе данных SQLite

Базы данных SQLite – это полнофункциональные механизмы SQL, которые можно использовать для многих целей. Подключаясь к БД SQLite, мы получаем доступ к данным, которые находятся в файле на нашем компьютере. В данном разделе для примера мы рассмотрим базу данных, которая помогает нам отслеживать количество рыб в воображаемом аквариуме.

Подключиться к базе данных SQLite можно с помощью модуля sqlite3:

import sqlite3
connection = sqlite3.connect(«aquarium.db»)

Строка import sqlite3 дает программе Python доступ к модулю sqlite3. Функция sqlite3.connect () возвращает объект Connection, который мы будем использовать для взаимодействия с базой данных SQLite, хранящейся в файле aquarium.db. Файл aquarium.db создается функцией sqlite3.connect() автоматически (если такой файл еще не существует на компьютере).

Чтобы убедиться, что объект connection создан успешно, запустите:

Если мы запустим этот код Python, мы увидим такой результат:

connection.total_changes в команде выше – это общее количество строк базы данных, которые были изменены объектом connection. Поскольку мы еще не выполнили ни одной команды SQL, мы ожидаем получить 0.

Если в какой-то момент вы захотите начать это руководство сначала, вы можете удалить файл aquarium.db с компьютера.

Примечание: Также можно подключиться к базе данных SQLite, которая находится строго в памяти (а не в файле), передав функции sqlite3.connect()специальную строку “:memory:”. Например:

Помните: такая база данных SQLite исчезнет, ​​как только Python завершит работу. Это может быть удобно, если вам нужна временная песочница, в которой вы могли бы опробовать какие-то функции, и вы не хотите сохранять данные после выхода из программы.

2: Добавление данных в БД SQLite

После того как мы подключились к базе данных aquarium.db, мы можем попробовать вставить в нее данные и извлечь их.

В базах SQL данные хранятся в таблицах. Таблицы определяют набор столбцов и содержат 0 или более строк с данными для каждого столбца.

Давайте создадим таблицу fish, в которой будут такие данные:

namespeciestank_number
Willyshark1
Jamiecuttlefish7

Итак, таблица fish будет содержать имя (столбец name), вид (species) и номер резервуара (tank_number) для каждой рыбы в аквариуме. Согласно записям, пока что в аквариуме есть два жителя: акула Вилли и каракатица по имени Джейми.

Создать эту таблицу рыб в SQLite можно при помощи соединения, которое мы установили в разделе 1:

cursor = connection.cursor()
cursor.execute(«CREATE TABLE fish (name TEXT, species TEXT, tank_number INTEGER)»)

connection.cursor() возвращает объект Cursor. Такие объекты позволяют отправлять SQL-операторы в базу данных SQLite с помощью cursor.execute(). Строка “CREATE TABLE fish …” – это SQL-оператор, который создает таблицу fish с тремя описанными столбцами: name (с типом данных TEXT), species (также с типом TEXT) и tank_number (с типом INTEGER).

Теперь, когда мы создали таблицу, мы можем вставить в нее строки данных:

cursor.execute(«INSERT INTO fish VALUES (‘Willy’, ‘shark’, 1)»)
cursor.execute(«INSERT INTO fish VALUES (‘Jamie’, ‘cuttlefish’, 7)»)

Мы вызываем cursor.execute() дважды: один раз, чтобы вставить строку об акуле Вилли из резервуара 1, и еще раз, чтобы вставить строку о каракатице Джейми из резервуара 7. “INSERT INTO fish VALUES …” – это SQL-оператор, который позволяет добавлять строки в таблицу.

В следующем разделе мы познакомимся с SQL-оператором SELECT:он поможет нам проверить строки, которые мы только что вставили в нашу таблицу.

3: Извлечение данных из БД SQLite

В разделе 2 мы добавили в таблицу по имени fish две строки. Извлечь эти строки можно с помощью оператора SELECT:

rows = cursor.execute(«SELECT name, species, tank_number FROM fish»).fetchall()
print(rows)

Если запустить этот код, мы получим такой результат:

[(‘Willy’, ‘shark’, 1), (‘Jamie’, ‘cuttlefish’, 7)]

Функция cursor.execute() запускает оператор SELECT для получения значений столбцов name, species и tank_number в таблице fish. Функция fetchall() извлекает все результаты оператора SELECT. Когда мы с помощью print(rows) выводим строки на экран, мы видим список из двух кортежей. Каждый кортеж состоит из трех записей – по одной записи для каждого столбца из таблицы. Оба кортежа содержат данные, которые мы вставили в таблицу в предыдущем разделе.

Допустим, нам нужно извлечь из таблицы только строки, которые соответствуют определенному набору критериев. Тогда мы можем использовать оператор WHERE:

Как и в предыдущем примере, cursor.execute( ).fetchall() позволяет извлечь все результаты оператора SELECT. Оператор WHERE в SELECT фильтрует данные и выбирает строки, в которых значение name равно искомому target_fish_name. Обратите внимание: мы используем символ «?», чтобы заменить значение переменной target_fish_name в операторе SELECT. Мы ожидаем, что заданному фильтру будет соответствовать только одна строка, и в результате действительно видим только строку Jamie, cuttlefish, 7.

Важно! Никогда не используйте строковые операции Python, чтобы динамически создать строку оператора SQL. Использование строковых операций Python для сборки операторов SQL открывает все двери атакам на основе SQL-инъекций. Подобные атаки могут использоваться для кражи или изменения данных, хранящихся в вашей БД. Для динамической замены всегда используйте заполнитель «?» в SQL-операторах. Передайте функции Cursor.execute() кортеж значений в качестве второго аргумента, чтобы привязать ваши значения к оператору. Такой подход используется в этом руководстве.

4: Изменение данных в БД SQLite

Строки в базе данных SQLite можно изменять с помощью SQL-операторов UPDATE и DELETE.

Предположим, что акула Вилли переехала в резервуар №2. Следовательно, нам нужно изменить строку в таблице, чтобы отразить это изменение:

SQL-оператор UPDATE изменит значение tank_number для записи Willy на 2. Оператор WHERE внутри UPDATE отфильтрует все остальные записи: значение tank_number изменится только в том случае, если name = “Willy”.

Давайте запустим следующий оператор SELECT, чтобы подтвердить, что данные обновлены правильно:

rows = cursor.execute(«SELECT name, species, tank_number FROM fish»).fetchall()
print(rows)

Мы увидим следующий результат:

[(‘Willy’, ‘shark’, 2), (‘Jamie’, ‘cuttlefish’, 7)]

Обратите внимание, в строке для Willy столбец tank_number теперь имеет значение 2.

Допустим, акула Вилли была выпущена в дикую природу и больше не живет в нашем аквариуме. Значит, имеет смысл удалить эту строку из таблицы.

Выполните SQL-оператор DELETE, чтобы удалить строку:

SQL-оператор DELETE удалит строку, а оператор WHERE поможет ему найти необходимую: строка будет удалена только в том случае, если name = “Willy”.

Следующий оператор SELECT подтвердит, что удаление выполнено правильно:

rows = cursor.execute(«SELECT name, species, tank_number FROM fish»).fetchall()
print(rows)

Мы получим следующий результат:

[(‘Jamie’, ‘cuttlefish’, 7)]

Обратите внимание, строки про акулу Вилли больше нет в таблице, остается только каракатица Джейми.

5: Оператор with

В течение работы с этим руководством мы использовали два основных объекта для взаимодействия с базой данных aquarium.db: объект Connection по имени connection и объект Cursor по имени cursor.

Когда файлы Python больше не используются, их нужно закрывать – точно так же следует закрыть и объекты Connection и Cursor, когда они больше не нужны.

Автоматически закрывать объекты Connection и Cursor можно при помощи оператора with.

from contextlib import closing
with closing(sqlite3.connect(«aquarium.db»)) as connection:
with closing(connection.cursor()) as cursor:
rows = cursor.execute(«SELECT 1»).fetchall()
print(rows)

closing – это удобная функция, предоставляемая модулем contextlib. Когда оператор with завершает работу, closing вызывает функцию close()для любого переданного ему объекта. В этом примере closing используется дважды: один раз для объекта Connection, второй раз – для объекта Cursor.

Этот код даст нам следующий результат:

Поскольку оператор SELECT 1 всегда возвращает одну строку с одним столбцом со значением 1, в результате мы получаем кортеж с единственным значением 1.

Заключение

Модуль sqlite3 – мощная часть стандартной библиотеки Python; он позволяет работать с полнофункциональной базой данных SQL, не устанавливая никакого дополнительного программного обеспечения.

Источник

Руководство по SQLite: настраиваем и учимся работать

Давно хотели познакомиться с SQLite? Мы сделали руководство по настройке и работе с инструментом, на основе статьи топового программиста.

Как установить sqlite3 python. Смотреть фото Как установить sqlite3 python. Смотреть картинку Как установить sqlite3 python. Картинка про Как установить sqlite3 python. Фото Как установить sqlite3 python
SQLite — это автономная база данных без сервера SQL. Ричард Хипп, создатель SQLite, впервые выпустил программное обеспечение 17 августа 2000 года. С тех пор оно стало вторым по популярности ПО в мире. Его используют даже в таких важных системах, как Airbus A350. Кстати, программа вместе со всеми библиотеками весит всего несколько мегабайт.

Установка SQLite 3 клиента

Для запуска SQLite 3, в командной строке нужно прописать следующее:

Настройка клиента

Вы можете изменить заданные по умолчанию настройки CLI SQLite 3, отредактировав файлы

/.sqliterc в директории. Это удобно для сохранения настроек, которые вы часто используете (рецептов). Вот пример:

Импорт CSV файлов

Если таблицы назначения еще не существует, первая строка CSV-файлов будет использоваться для именования каждого из столбцов. Если таблица существует, то все строки данных будут добавлены в существующую таблицу.

В качестве примера я собрал несколько аэропортов Уэльса в CSV-файл с разными кодировками.

Я запустил в клиенте SQLite 3 новую базу данных под названием airport.db. Этого файла базы данных еще не существовало, поэтому SQLite 3 автоматически создал его для меня.

Я переключил клиент в режим CSV, установил запятую разделителем, а затем импортировал файл airport.csv.

Теперь появляется возможность запустить команду schema в таблице новых аэропортов, видим два столбца с названиями на японском языке и ещё два — с использованием ASCII-символов.

Без проблем можно давать команды, смешивая кодировки.

Кроме того, можно сбросить базу данных на SQL с помощью лишь одной команды.

Создание базы данных в памяти

Локальность данных может быть значительно улучшена за счет хранения базы данных SQLite 3 в памяти, а не на диске. Ниже приведен пример, где я вычисляю 10 значений Фибоначчи и сохраняю их в базе данных SQLite 3, находящейся в памяти, с использованием Python 3.

Пользовательские функции

Вы можете создавать пользовательские функции в Python, которые будут выполняться с использованием данных, находящихся внутри БД SQLite 3. Ниже приведена небольшая база данных SQLite 3:

Затем я создал функцию на Python, которая извлекает имя хоста из URL-адреса и выполняет действия, ориентируясь на таблицу.

Вот что выводится при вызове функции fetchall:

Работа с несколькими базами данных

Клиент SQLite 3 способен работать с несколькими базами данных за один сеанс. Ниже я запустил клиент и подключил две базы данных.

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

Визуализация с помощью Jupyter Notebooks

Jupyter Notebooks — популярная программа для визуализации данных. Ниже можно посмотреть процесс настройки и несколько примеров визуализаций.
Для начала я установил ряд системных зависимостей.

Я обновил менеджер пакетов «pip» Python до версии 9.0.1 в этой виртуальной среде.

Затем я установил несколько популярных Python-библиотек.

Jupyter Notebooks откроет рабочую папку на Linux-машине через HTTP, поэтому мне нужно создать отдельную рабочую папку.

Затем я включил расширение gmaps и разрешил Jupyter использовать виджеты.

После этого я запустил сервер Notebook. Вы увидите URL-адрес, содержащий параметр токена. Чтобы запустить Notebook (не ПК, конечно же), откройте ссылку в веб-браузере.

Перед открытием URL-адреса я создал базу данных SQLite 3 из CSV-файла. Здесь содержится около миллиона случайных записей о поездках на такси. Чтобы экспортировать эти записи из Hive, я сделал следующее:

В моём блоге есть краткие инструкции по импорту набора данных в Hive. Если использовать инструкции не на ОС Raspbian, а на других, то имена пакетов, например, для JDK, вероятно, будут отличаться.

Вот первые три строки этого CSV-файла. Обратите внимание: первая строка содержит имена столбцов.

Я распаковал GZIP-файл, запустил SQLite 3, добавил trip.db в качестве параметра.

Затем переключился в режим CSV, убедился в том, что разделителем является запятая, и что импортирует CSV-файл в таблицу маршрутов.

Настроили, что дальше?

С импортированными данными я открыл Notebook URL-адрес и создал Python 3 Notebook в интерфейсе Jupyter’а. Теперь необходимо вставить следующее в первую ячейку, одновременно зажать shift и кнопку выполнения.

Код выше будет импортировать Pandas, библиотеку Python для SQLite 3, Holoviews — библиотеку обработки данных, библиотеку визуализации, а затем инициализировать расширение Bokeh для Holoviews. Наконец, будет установлено соединение с базой данных SQLite 3 с информацией о поездках на такси.

В следующем примере я привел код, который создаст heatmap для разбивки поездок по дням и часам.

Ниже приводится линейная диаграмма, показывающая количество поездок такси.

Чтобы построилась гистограмма, сравнивающая данные по разным цветам автомобилей, необходимо ввести информацию в новую ячейку.

Ниже приводится круговая диаграмма, показывающая зависимость поездок от времени суток.

Чтобы создать диаграмму матрицы рассеивания, выполните действия как в коде ниже. Заметьте, что это может занять несколько минут. Сначала будет показан массив данных, а потом и сам график.

Я натолкнулся на два способа отображения географических точек на картах. Первый — с Matplotlib и Basemap, которые будут работать в автономном режиме, без необходимости использовать API-ключи. Ниже будут указаны точки сбора для маршрутов такси в наборе данных.

Да, это выглядит несколько примитивно.

Следующий код построит heatmap поверх Google Maps виджета. Недостатком является то, что вам нужно будет создать связанный с Google API-ключ и подключаться к Интернету, когда вы его используете.

Другая проблема заключается в том, что если географические данные о широте/долготе недействительны, вы получите сообщение об ошибке, а не просто пропустите их. Зачастую набор данных находится в неидеальном состоянии, а потому, возможно, придется потратить некоторое время на фильтрацию неверных значений.

Дампинг Pandas DataFrames для SQLite

Pandas DataFrames отлично подходят для создания производных наборов данных с минимальным количеством кода. Кроме того, сброс Pandas DataFrames обратно в SQLite 3 очень прост. В этом примере я заполнил DataFrame некоторыми CSV-данными, создал новую базу данных SQLite 3 и выгрузил DataFrame в этот файл.

Вывод

SQLite 3 — не игрушка, а мощное SQL-расширение. Поскольку скорость хранения и производительность одного ядра в процессорах увеличивают объем данных, SQLite 3 продолжает развиваться.

Я определенно считаю SQLite 3 одной из наиболее удобных баз данных, и я решаю значительное количество задач с его помощью.

Возможно вас заинтересует следующая статья

Источник

А вы знаете о том, что в Python есть встроенная СУБД?

Если вы — программист, то я полагаю, что вы, наверняка, знаете о существовании чрезвычайно компактной и нетребовательной к ресурсам СУБД SQLite, или даже пользовались ей. Эта система обладает практически всеми возможностями, которых можно ожидать от реляционной СУБД, но при этом всё хранится в единственном файле. Вот некоторые сценарии использования SQLite, упомянутые на официальном сайте этой системы:

Как установить sqlite3 python. Смотреть фото Как установить sqlite3 python. Смотреть картинку Как установить sqlite3 python. Картинка про Как установить sqlite3 python. Фото Как установить sqlite3 python

Импорт модуля

Создание подключения к БД

Для организации подключения к базе данных SQLite не нужно беспокоиться об установке драйверов, о подготовке строк подключения и о прочих подобных вещах. Создать базу данных и получить в своё распоряжение объект подключения к ней можно очень просто и быстро:

Выполнив эту строку кода, мы создадим базу данных и подключимся к ней. Дело тут в том, что база данных, к которой мы подключаемся, пока не существует, поэтому система автоматически создаёт новую пустую БД. Если же база данных уже создана (предположим, это my-test.db из предыдущего примера), для того чтобы к ней подключиться, достаточно воспользоваться точно таким же кодом.

Как установить sqlite3 python. Смотреть фото Как установить sqlite3 python. Смотреть картинку Как установить sqlite3 python. Картинка про Как установить sqlite3 python. Фото Как установить sqlite3 python

Файл только что созданной базы данных

Создание таблицы

Теперь давайте создадим таблицу в нашей новой БД:

Если этот код функционирует так, как ожидается (вышеприведённая команда, правда, ничего не возвращает), в нашем распоряжении окажется таблица, готовая к дальнейшей работе с ней.

Вставка записей в таблицу

Представим, что нам нужно добавить в таблицу несколько записей одной командой. В SQLite сделать это очень просто:

Сообщений об ошибках после выполнения этого кода не поступает, а это значит, что данные успешно добавлены в таблицу.

Выполнение запросов к базе данных

Теперь пришло время узнать о том, правильно ли отработали команды, которые мы только что выполняли. Давайте выполним запрос к БД и попробуем получить из таблицы USER какие-то данные. Например — получим записи, относящиеся к пользователям, возраст которых не превышает 22 года:

Как установить sqlite3 python. Смотреть фото Как установить sqlite3 python. Смотреть картинку Как установить sqlite3 python. Картинка про Как установить sqlite3 python. Фото Как установить sqlite3 python

Результат выполнения запроса к БД

Как видите, то, что было нужно, получить удалось. И сделать это было очень просто.

Кроме того, даже хотя SQLite — простая СУБД, она отличается крайне широкой поддержкой. Поэтому с ней можно работать, используя большинство SQL-клиентов.

Я пользуюсь DBeaver. Предлагаю взглянуть на то, как это выглядит.

Подключение к базе данных SQLite из SQL-клиента (DBeaver)

Я пользуюсь облачным сервисом Google Colab и хочу загрузить файл my-test.db на свой компьютер. Если же вы экспериментируете с SQLite на компьютере, то это значит, что вы, без необходимости скачивать откуда-то файл базы данных, можете подключиться к ней, используя SQL-клиент.

В случае с DBeaver для подключения к БД SQLite нужно создать новое подключение и выбрать, в качества типа базы данных, SQLite.

Как установить sqlite3 python. Смотреть фото Как установить sqlite3 python. Смотреть картинку Как установить sqlite3 python. Картинка про Как установить sqlite3 python. Фото Как установить sqlite3 python

Подготовка подключения в DBeaver

Затем надо найти файл базы данных.

Как установить sqlite3 python. Смотреть фото Как установить sqlite3 python. Смотреть картинку Как установить sqlite3 python. Картинка про Как установить sqlite3 python. Фото Как установить sqlite3 python

Подключение файла базы данных

После этого можно выполнять SQL-запросы к базе данных. Тут нет ничего особенного, отличающегося от работы с обычными реляционными БД.

Как установить sqlite3 python. Смотреть фото Как установить sqlite3 python. Смотреть картинку Как установить sqlite3 python. Картинка про Как установить sqlite3 python. Фото Как установить sqlite3 python

Выполнение запросов к базе данных

Интеграция с pandas

Думаете, на этом мы завершим разговор о поддержке SQLite в Python? Нет, нам ещё есть о чём поговорить. А именно, так как SQLite — это стандартный Python-модуль, эта СУБД легко интегрируется с дата-фреймами pandas.

Как установить sqlite3 python. Смотреть фото Как установить sqlite3 python. Смотреть картинку Как установить sqlite3 python. Картинка про Как установить sqlite3 python. Фото Как установить sqlite3 python

Для сохранения датафрейма в БД можно просто воспользоваться его методом to_sql() :

Вот и всё! Нам даже не нужно заранее создавать таблицу. Типы данных и характеристики полей будут настроены автоматически, на основании характеристик датафрейма. Конечно, вы, если надо, можете настроить всё самостоятельно.

Теперь, предположим, нам нужно получить объединение таблиц USER и SKILL и записать полученные данные в датафрейм pandas. Это тоже очень просто:

Как установить sqlite3 python. Смотреть фото Как установить sqlite3 python. Смотреть картинку Как установить sqlite3 python. Картинка про Как установить sqlite3 python. Фото Как установить sqlite3 python

Чтение данных из БД в датафрейм pandas

Замечательно! А теперь давайте запишем то, что у нас получилось, в новую таблицу с именем USER_SKILL :

С этой таблицей, конечно, можно работать и пользуясь SQL-клиентом.

Как установить sqlite3 python. Смотреть фото Как установить sqlite3 python. Смотреть картинку Как установить sqlite3 python. Картинка про Как установить sqlite3 python. Фото Как установить sqlite3 python

Применение SQL-клиента для работы с базой данных

Итоги

В Python, безусловно, есть много приятных неожиданностей, которые, если специально их не искать, можно и не заметить. Специально подобные возможности никто не прятал, но из-за того, что в Python встроено очень много всего, на некоторые из таких возможностей можно просто не обратить внимания, или, откуда-то о них узнав, просто о них забыть.

Очень важно то, что SQLite отлично стыкуется с pandas. Данные из БД очень легко считывать, помещая в датафреймы. Не менее проста и операция по сохранению содержимого датафреймов в базу данных. Это ещё сильнее упрощает использование SQLite.

Предлагаю всем, кто дочитал до этого места, заняться собственными исследованиями в поиске интересных возможностей Python!

Код, который я демонстрировал в этой статье, можно найти здесь.

Пользуетесь ли вы SQLite в своих Python-проектах?

Источник

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

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