Введение

На данный момент для работы с БД очень популярен SQL.

<aside> ✍️ Определение SQL (Structured Query Language) - это стандартный язык запросов, используемый для работы с реляционными базами данных. SQL позволяет выполнять операции создания, чтения, обновления и удаления данных в базе данных, а также управлять ее структурой.

</aside>

А что такое MySQL, SQLite, PostreSQL?

Прикол в том, что SQL является декларативным языком, который определяет, какие данные должны быть извлечены или изменены, но не описывает, как это должно быть сделано. Это означает, что пользователь указывает, что он хочет получить, а система управления базами данных (СУБД) самостоятельно определяет, как это сделать наиболее эффективным способом.

<aside> ✍️ Определение СУБД (система управления базами данных) - это программное обеспечение, которое позволяет создавать, изменять, управлять и использовать базы данных. СУБД обеспечивает интерфейс между пользователем или приложением и базой данных, предоставляя средства для создания, изменения и удаления данных, а также для управления структурой базы данных.

</aside>

Итак, язык запросов один - это SQL, а реализация разная - это такие СУБД, как MySQL, SQLite, PostgreSQL, Microsoft SQL Server, Oracle Database и так далее.

Ещё раз, SQL это язык запросов, а СУБД - то, что обрабатывает наш запрос.


SQLAlchemy или Что такое ORM?

В Python уже есть встроенная библиотека — sqlite3. Ну давайте использовать её!

Посмотрите на простой пример работы с ней:

import sqlite3

# Создаем подключение к базе данных
conn = sqlite3.connect('my_database.db')

# Создаем курсор для выполнения SQL-запросов
cursor = conn.cursor()

# Выполняем SQL-запрос на получение всех данных из таблицы "my_table"
cursor.execute('SELECT * FROM my_table')

# Получаем все результаты запроса
results = cursor.fetchall()

# Выводим результаты на экран
for row in results:
    print(row)

# Закрываем курсор и подключение к базе данных
cursor.close()
conn.close()

Обратите внимание на то, как выглядит сам запрос:

cursor.execute('SELECT * FROM my_table')

Ну тут ещё все более менее понятно. Но это что дальше… Придётся учить язык запросов. А есть что-то с более человеческим лицом, что-то полностью автоматизированное? Да:

<aside> ✍️ Определение ORM (Object-Relational Mapping) - это технология, которая предоставляет программисту инструменты для преобразования данных между объектной моделью приложения и реляционной базой данных. ORM позволяет работать с базой данных как с набором объектов, а не как с набором таблиц, строк и столбцов.

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

</aside>

Пока не очень понятно.