Состояние гонки

Ссылка на статью на хабре

Что такое ORM?

ORM — Object-Relational Mapping (объектно-реляционное отображение). Это прослойка в виде библиотеки между БД и python, которая связывает наши объекты и классы с таблицами и строками в БД.

  1. SQLAlchemy — большой фреймворк, состоящий из 2-х частей (core и ORM). Чаще используется ORM. ORM предоставляет высокоуровневый доступ к БД. Мы создаем engine, сессию, описываем таблицы, связи

    ✅ …

    ❌ …

  2. Django ORM — …

    ✅ …

    ❌ …

    Работа с postgresql из командной строки (- посмотреть в консоле структуру таблицы итп)

    Какие NoSQL базы данных знаешь? С какими работал? Кейсы использования? Плюсы и минусы?

    Mongo, redis Что такое документ? Что документ из себя представляет? Что такое коллекция? Как делать поиск? Как делать поиск по регулярке? Какие проблемы решают? Главная концепция — не используют язык SQL и реляционную модель. Каждая заточена под конкретную классную нужду. Хорошо масштабируются горизонтально. теорема CAP https://habr.com/ru/post/328792/ (можно сидеть только на 2-х стульях из 3-х) C — consistency (надежность) A — availability (доступность) P — partitioning (разделение)

    Повторить запросы select, условия, join, group by, having

    Какие SQL базы данных знаешь? С какими работал? Кейсы использования? Плюсы и минусы?

    Отличия между postgresql и mysql:

    https://sbercloud.ru/ru/warp/blog/mysql-vs-postgresql

    Если больше гибкости и легковестности, берем postgresql Если меньше гемороя хотим, берем mysql

Having

HAVING - это часть оператора SQL, который используется совместно с оператором GROUP BY для фильтрации результатов агрегатных функций, таких как COUNT, SUM, AVG, и других, после группировки строк. Он позволяет применять условия к сгруппированным данным и выбирать только те группы, которые соответствуют определенным критериям.

Основное назначение HAVING: Фильтрация результатов агрегатных функций: HAVING позволяет выбирать группы результатов, которые соответствуют определенным условиям. Это отличается от оператора WHERE, который фильтрует строки до их группировки.

Пример использования HAVING: Предположим, у вас есть таблица "Заказы" (Orders), и вы хотите найти сумму заказов для каждого клиента, а затем выбрать только тех клиентов, у которых сумма заказов превышает 1000 долларов:

SELECT customer_id, SUM(order_amount) AS total_order_amount
FROM Orders
GROUP BY customer_id
HAVING SUM(order_amount) > 1000;

PK, FK

PK и FK могут состоять более, чем из 1 столбца

Типы связей. Как реализуется связь много ко многим

1 к 1 — 2 таблицы (в одной FK на PK первой). Во второй таблице (с FK) указано, что FK unique

1 ко многим, но без unique

многие ко многим — реализуется с помощью третьей (связующей таблицы), которая содержит ключ в первую таблицу, ключ во вторую таблицу и таблицы связаны друг с другом связью 1 ко многим