- Как работать с модулем sqlite3 в Python
- Подключение к базе данных SQLite
- Создание таблицы
- Вставка данных
- Выборка данных
- Обновление данных
- Удаление данных
- Закрытие соединения
- Python закрыть соединение sqlite
- Добавление записей в БД
- Редактирование записей
- Удаление записей
- Запросы на извлечение данных из нескольких таблиц
- Подведем итоги
- Материалы по теме
Как работать с модулем sqlite3 в Python
Узнайте основы работы с модулем sqlite3 в Python: создание таблиц, вставка, выборка, обновление и удаление данных, а также закрытие соединения.
SQLite – это встраиваемая в приложение файловая база данных SQL, которая предоставляет множество функций для работы с данными. В Python для работы с SQLite используется модуль sqlite3 , который входит в стандартную библиотеку Python. В этой статье мы рассмотрим основы работы с модулем sqlite3 .
Подключение к базе данных SQLite
Для начала работы с базой данных SQLite необходимо создать соединение с файлом базы данных. Если файла не существует, он будет создан автоматически. Вот пример:
import sqlite3 conn = sqlite3.connect('example.db')
Создание таблицы
Теперь, когда у нас есть соединение с базой данных, мы можем создать таблицу с помощью команды SQL CREATE TABLE . В Python это делается с помощью метода execute() :
cursor = conn.cursor() cursor.execute(''' CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER) ''') conn.commit()
Вставка данных
Для вставки данных в таблицу используется команда SQL INSERT INTO . Пример вставки данных в таблицу users с использованием модуля sqlite3 :
user_data = ('John Doe', 30) cursor.execute('INSERT INTO users (name, age) VALUES (?, ?)', user_data) conn.commit()
Выборка данных
Для выборки данных из таблицы используется команда SQL SELECT . Пример выборки всех пользователей из таблицы users :
cursor.execute('SELECT * FROM users') rows = cursor.fetchall() for row in rows: print(row)
Обновление данных
Для обновления данных в таблице используется команда SQL UPDATE . Пример обновления возраста пользователя с именем John Doe :
new_age = 35 user_name = 'John Doe' cursor.execute('UPDATE users SET age = ? WHERE name = ?', (new_age, user_name)) conn.commit()
Удаление данных
Для удаления данных из таблицы используется команда SQL DELETE . Пример удаления пользователя с именем John Doe :
user_name = 'John Doe' cursor.execute('DELETE FROM users WHERE name = ?', (user_name,)) conn.commit()
Закрытие соединения
После завершения работы с базой данных необходимо закрыть соединение с помощью метода close() :
Теперь вы знаете основы работы с модулем sqlite3 в Python. В этой статье мы рассмотрели основные операции: создание таблицы, вставка, выборка, обновление и удаление данных, а также закрытие соединения с базой данных. Не забывайте о практике и экспериментируйте для лучшего понимания работы с данными в Python. Удачи в изучении! 🐍
Python закрыть соединение sqlite
2. Создать подключение к базе данных SQLite:
Более продвинутый браузер/редактор – DB Browser :
Из многофункциональных инструментов для работы с SQLite отлично подходит базовая версия Dbeaver .
Добавление записей в БД
Внесем в базу первую запись – информацию о пользователе по имени Инна Егорова, 20 лет, с факультета прикладной математики:
Редактирование записей
Изменим возраст для пользователя с именем Инна и фамилией Егорова:
Удаление записей
Напишем запрос на удаление из БД всех записей, которые содержат «Прикладная математика» в поле faculty :
Запросы на извлечение данных из нескольких таблиц
В реальных приложениях очень часто необходимо извлекать данные из нескольких таблиц сразу. Проиллюстрируем на примере базы данных university, в которой содержатся две таблицы – students и fees. Размер оплаты за обучение (fee) снижается на 3% каждый год. Кроме того, студенты, у который средний балл успеваемости соответствует установленному критерию, могут рассчитывать на дополнительную скидку.
Создадим и заполним базу с помощью скрипта. Код для поиска всех препаратов, названия которых совпадают с запросом, выглядит так:
Напишите программу, которая определяет, сколько времени суммарно каждый сотрудник провел в CRM в июне. Нужно вывести список сотрудников, которые провели в CRM более 95 часов.
Напишите программу, которая:
- Находит и выводит список записей, у которых есть дубликаты.
- Предлагает удалить дубликаты, и в случае ответа yes – удаляет их.
import sqlite3 con = sqlite3.connect('sales.db') cursor = con.cursor() # Находим дубликаты cursor.execute(''' SELECT brand, model, engine_volume, max_speed, price, COUNT(*) FROM items GROUP BY LOWER(brand), LOWER(model), engine_volume, max_speed, price HAVING COUNT(*) > 1 ''') # Выводим найденные дубликаты duplicates = cursor.fetchall() if duplicates: print('У этих записей есть дубликаты:') for row in duplicates: print(row[:-1]) answer = input('Хотите удалить дубликаты? Введите yes/no ' ) if answer.lower() == 'yes': # Создаем подключение к базе данных con = sqlite3.connect('sales.db') # Создаем курсор для взаимодействия с базой данных cursor = con.cursor() # Удаляем дубликаты со значением не начинающимся на заглавную букву cursor.execute(''' DELETE FROM items WHERE id NOT IN ( SELECT id FROM ( SELECT id, ROW_NUMBER() OVER ( PARTITION BY LOWER(brand), LOWER(model), color, engine_volume, max_speed, price ORDER BY id ) row_number FROM items ) WHERE row_number = 1 or (row_number = 2 and brand = LOWER(brand) and model = LOWER(model)) ) ''') # Сохраняем изменения в базе данных con.commit() print('Дубликаты удалены') else: print('Не забудьте удалить дубликаты') else: print('Дубликаты не найдены') # Закрываем соединение с базой данных con.close()
Подведем итоги
Мы научились выполнять основные операции с базой данных SQLite :
- создавать, редактировать и удалять записи;
- заполнять базу данными с помощью pandas;
- делать выборки данных по различным критериям;
- извлекать данные для последующих расчетов;
- удалять дубликаты записей.
Работа с базами данных – обширная тема, и ее невозможно подробно рассмотреть в одной статье. За кадром осталось многое, в том числе работа с таблицами, связанными отношениями один к одному, один ко многим, многие ко многим и многие к одному. Эту тему мы подробно разберем в новом курсе по Django.
- Особенности, сферы применения, установка, онлайн IDE
- Все, что нужно для изучения Python с нуля – книги, сайты, каналы и курсы
- Типы данных: преобразование и базовые операции
- Методы работы со строками
- Методы работы со списками и списковыми включениями
- Методы работы со словарями и генераторами словарей
- Методы работы с кортежами
- Методы работы со множествами
- Особенности цикла for
- Условный цикл while
- Функции с позиционными и именованными аргументами
- Анонимные функции
- Рекурсивные функции
- Функции высшего порядка, замыкания и декораторы
- Методы работы с файлами и файловой системой
- Регулярные выражения
- Основы скрапинга и парсинга
- Основы ООП: инкапсуляция и наследование
- Основы ООП: абстракция и полиморфизм
- Графический интерфейс на Tkinter
- Основы разработки игр на Pygame
- Основы работы с SQLite
- Основы веб-разработки на Flask
- Основы работы с NumPy