Лекция - Работа с базами данных в Python

Professor

Professional
Messages
213
Reaction score
22
Points
18
Перед тем как мы начнем писать код, давайте разберемся, что же такое базы данных и зачем они нужны. База данных - это организованная коллекция данных, которая хранится и управляется с помощью специального программного обеспечения, называемого системой управления базами данных (СУБД). Базы данных позволяют нам эффективно хранить, извлекать, изменять и анализировать большие объемы структурированных данных.
Существует множество типов баз данных, но мы сосредоточимся на реляционных базах данных, которые используют язык SQL (Structured Query Language) для взаимодействия с данными. SQL - это стандартный язык запросов, с помощью которого мы можем создавать таблицы, добавлять, изменять и удалять данные, а также выполнять сложные запросы для получения нужной информации.

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

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

Давайте начнем с импорта библиотеки и создания подключения к базе данных:
Python:
Copy codeimport sql[/SIZE][/CENTER]
[SIZE=5][CENTER]conn = sqlite3.connect('rutor.db
print("База данных успешно подключена!")

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

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

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

Python:
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() сохраняет изменения в базе данных.

Теперь давайте добавим несколько книг в нашу таблицу:
Python:
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() для вставки нескольких записей одновременно. Знаки вопроса? служат заполнителями для значений, которые мы передаем.

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

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

Python:
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() возвращает все результаты в виде списка кортежей. Затем мы перебираем полученные строки и выводим информацию о каждой книге.

Мы также можем выполнять более сложные запросы с условиями и сортировкой:
Python:
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$, и сортируем результаты по убыванию цены.

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

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

Python:
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:
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. Существует множество более продвинутых концепций и возможностей, таких как индексы, транзакции, соединения таблиц, агрегатные функции и многое другое.

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

Желаю вам успехов в ваших базах данных и счастливого кодинга!
 
Python:
Code:
Copy codeimport sql[/SIZE][/CENTER]
[SIZE=5][CENTER]conn = sqlite3.connect('rutor.db
print("База данных успешно подключена!")
че это? где это писать вообще?
 
Top