Лог лекции Работа с базами данных в Python. Лекция от CyberSec Rutor 28.04.2024

CyberSec RuTOR

Кибербезопасность
Команда форума
Модератор
Сообщения
939
Реакции
1.346
Перед тем как мы начнем писать код, давайте разберемся, что же такое базы данных и зачем они нужны. База данных - это организованная коллекция данных, которая хранится и управляется с помощью специального программного обеспечения, называемого системой управления базами данных (СУБД). Базы данных позволяют нам эффективно хранить, извлекать, изменять и анализировать большие объемы структурированных данных.
Существует множество типов баз данных, но мы сосредоточимся на реляционных базах данных, которые используют язык SQL (Structured Query Language) для взаимодействия с данными. SQL - это стандартный язык запросов, с помощью которого мы можем создавать таблицы, добавлять, изменять и удалять данные, а также выполнять сложные запросы для получения нужной информации.

Установка и настройка SQLite3

Для работы с базами данных в Python мы будем использовать библиотеку SQLite3. SQLite - это легковесная и удобная система управления базами данных, которая хранит всю базу данных в одном файле и не требует отдельного сервера.
Хорошая новость в том, что библиотека SQLite3 уже включена в стандартную библиотеку Python, поэтому нам не нужно устанавливать ее отдельно. Мы можем сразу приступить к работе!




Давайте начнем с импорта библиотеки и создания подключения к базе данных:



Код:
Copy codeimport sql[/SIZE][/CENTER]
[SIZE=5][CENTER]conn = sqlite3.connect('rutor.db
print("База данных успешно подключена!")


Здесь мы импортируем библиотеку sqlite3 и создаем подключение к базе данных rutor.db. Если файл базы данных не существует, он будет автоматически создан в текущей директории.


Создание таблицы и вставка данных

Теперь, когда у нас есть подключение к базе данных, самое время создать таблицу для хранения данных. Давайте представим, что мы создаем базу данных для онлайн-магазина книг "Rutor". Нам понадобится таблица books для хранения информации о книгах.





Код:
Copy codecursor = conn.cursor([/SIZE][/CENTER]
[SIZE=5][CENTER]cursor.execute('''CREATE TABLE IF NOT EXISTS books
                  (id INTEGER PRIMARY KEY,
                   title TEXT,
                   author TEXT,
                   price REAL,
                   quantity INTEGER)'''
print("Таблица books успешно создана!")
[CENTER]conn.commit()



В этом фрагменте кода мы создаем таблицу books с полями id (первичный ключ), title (название книги), author (автор), price (цена) и quantity (количество в наличии). Метод execute() используется для выполнения SQL-запросов, а commit() сохраняет изменения в базе данных.




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



Код:
Copy codebooks = [[/SIZE][/CENTER]
[SIZE=5][CENTER]    ('Python Crash Course', 'Eric Matthes', 29.99, 10),
    ('Automate the Boring Stuff with Python', 'Al Sweigart', 24.99, 5),
    ('Fluent Python', 'Luciano Ramalho', 39.99, 3),
    ('Python for Data Analysis', 'Wes McKinney', 34.99, 8),
    ('Learning Python', 'Mark Lutz', 44.99, 2)

cursor.executemany('INSERT INTO books (title, author, price, quantity) VALUES (?, ?, ?, ?)', books)
print("Данные успешно добавлены в таблицу books!")
conn.commit()


Мы создаем список кортежей books, содержащий информацию о книгах, и затем используем метод executemany() для вставки нескольких записей одновременно. Знаки вопроса ? служат заполнителями для значений, которые мы передаем.


Выполнение запросов и обработка результатов

Теперь, когда наша таблица наполнена данными, самое время выполнить несколько запросов и посмотреть, как мы можем извлекать и обрабатывать информацию из базы данных.





Код:
Copy codecursor.execute('SELECT * FROM books')[/SIZE][/CENTER]
[SIZE=5][CENTER]rows = cursor.fetchall()

print("Все книги в магазине Rutor:")
for row in rows:
    print(f"ID: {row[0]}, Название: {row[1]}, Автор: {row[2]}, Цена: {row[3]}, Количество: {row[4]}")


Здесь мы выполняем запрос SELECT * FROM books, который выбирает все записи из таблицы books. Метод fetchall() возвращает все результаты в виде списка кортежей. Затем мы перебираем полученные строки и выводим информацию о каждой книге.



Мы также можем выполнять более сложные запросы с условиями и сортировкой:





Код:
Copy codecursor.execute('SELECT title, author, price FROM books WHERE price > 30 ORDER BY price DESC')[/SIZE][/CENTER]
[SIZE=5][CENTER]rows = cursor.fetchall(
print("Книги дороже 30$, отсортированные по убыванию цены:")
for row in rows:
    print(f"Название: {row[0]}, Автор: {row[1]}, Цена: {row[2]}")


В этом примере мы выбираем только поля title, author и price для книг, цена которых превышает 30$, и сортируем результаты по убыванию цены.


Обновление и удаление записей

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





Код:
Copy code# Обновление цены книги[/SIZE][/CENTER]
[SIZE=5][CENTER]cursor.execute('UPDATE books SET price = 19.99 WHERE title = "Python Crash Course"')
print("Цена книги 'Python Crash Course' успешно обновлена!")
conn.commit(
# Удаление книги из магазина
cursor.execute('DELETE FROM books WHERE title = "Learning Python"')
print("Книга 'Learning Python' успешно удалена из магазина!")
conn.commit()



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


Обновление и удаление записей

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





Код:
Copy code# Обновление цены книги[/SIZE][/CENTER]
[SIZE=5][CENTER]cursor.execute('UPDATE books SET price = 19.99 WHERE title = "Python Crash Course"')
print("Цена книги 'Python Crash Course' успешно обновлена!")
conn.commit(
# Удаление книги из магазина
cursor.execute('DELETE FROM books WHERE title = "Learning Python"')
print("Книга 'Learning Python' успешно удалена из магазина!")
conn.commit()



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

Вот и все, друзья! Мы рассмотрели основы работы с базами данных в Python с использованием SQLite3. Мы научились создавать таблицы, добавлять данные, выполнять запросы, обновлять и удалять записи.
Это лишь вершина айсберга в мире баз данных и SQL. Существует множество более продвинутых концепций и возможностей, таких как индексы, транзакции, соединения таблиц, агрегатные функции и многое другое.

Помните, что работа с базами данных - это неотъемлемая часть разработки многих приложений. Она позволяет хранить, управлять и анализировать данные эффективно и надежно. Продолжайте практиковаться, экспериментировать и применять полученные знания в своих проектах.
Если у вас возникнут вопросы не стесняйтесь оставлять комментарии.
Желаю вам успехов в ваших базах данных и счастливого кодинга!
 
Как собрать разные пдф документы в общую базу автоматизированно?
 

Похожие темы

Парсинг веб-страниц - это процесс автоматического сбора данных с веб-сайтов. Он позволяет извлекать информацию, такую как тексты, ссылки, изображения и другие данные, из HTML-кода страниц. Парсинг широко используется в различных областях, таких как анализ данных, мониторинг цен, агрегация...
Ответы
4
Просмотры
  • Закрыта
Добро пожаловать в увлекательный мир баз данных и Python! В этой лекции мы погрузимся вместе с вами в тему работы с базами данных, используя язык программирования Python. Разберем с вами базовые вещи работы с базами данных! Об этом поговорим 28.04.24 в 17:00 по МСК Для записи на лекцию ставим +...
Ответы
8
Просмотры
619
Удалённый пользователь 223696
У
Python - это один из наиболее популярных языков программирования в мире, который используется для создания приложений, веб-сайтов, игр и многого другого. Для начинающих программистов Python - отличный выбор, так как он имеет простой и понятный синтаксис и множество библиотек, которые делают его...
Ответы
22
Просмотры
Назад
Сверху Снизу