1. Главная
  2. Библиотека
  3. Информационные технологии
  4. В небольшой компании Orion Books информация о книгах хр...
Разбор задачи

В небольшой компании Orion Books информация о книгах хранится в базе данных SQLite. B этой базе есть таблица books с колонками: id - целое число, первичный ключ; title - название книги (строка, до 200 символов); author_name - имя автора (строка, до 100

  • Предмет: Информационные технологии
  • Автор: Кэмп
  • #Программирование (языки C++, Java, Python и др.)
  • #Базы данных
В небольшой компании Orion Books информация о книгах хранится в базе данных SQLite. B этой базе есть таблица books с колонками: id - целое число, первичный ключ; title - название книги (строка, до 200 символов); author_name - имя автора (строка, до 100

Условие:

В небольшой компании Orion Books информация о книгах хранится в базе данных SQLite. B этой базе есть таблица books с колонками: id - целое число, первичный ключ; title - название книги (строка, до 200 символов); author_name - имя автора (строка, до 100 символов); year - год издания (целое число).

Для аналитики нужно построить простой отчёт: список книг, изданных не раньше 2008 года. Такой отчёт должен:

подключаться к уже существующему файлу базы SQLite;
работать через SQLAlchemy ORM (модель Book, Session, select()), а не через «сырые» SQL-строки;
возвращать результаты в виде удобных кортежей.

Что сделать

Описать ORM-модель Book, сопоставленную с таблицей books: id (int), первичный ключ; title (str), String(200); author_name (str), String(100); year (int).
Реализовать функцию: def list_books_not_older_2008(db_path: str) -> list[tuple[str, str, int]]: ⋯

Функция должна:

подключиться к базе по адресу sqlite:///\{db_path\} через create_engine;
создать Session через sessionmaker;
выполнить ORM-запрос к модели Book, выбирающий книги, где year >= 2008;
отсортировать результаты по year (по возрастанию), затем по title (по возрастанию);
вернуть список кортежей вида (title, author_name, year).

Решение:

Здравствуйте! Я помогу вам решить эту задачу, используя SQLAlchemy ORM для создания модели и выполнения запроса к базе данных SQLite.

Вот пошаговое решение, включающее описание модели и реализацию требуемой функции.

### 1. Импорты и Базовые Настройки

Нам понадобятся классы из `sqlalchemy` для определения модели и работы с сессиями.

```python
from sqlalchemy import create_engine, Column, Integer, String, select
from sqlalchemy.orm import declarative_base, sessionmaker, Session
from typing import List, Tuple
```

Внутри — полный разбор, аргументация, алгоритм решения, частые ошибки и как отвечать на каверзные вопросы препода, если спросит

Попробуй решить по шагам

Попробуй один шаг и продолжи в режиме обучения или посмотри готовое решение

Какой метод SQLAlchemy ORM используется для фильтрации результатов запроса по условию (например, `year >= 2008`)?

Что нужно знать по теме:

Что нужно знать по теме

Алгоритм решения

Топ 3 ошибок

Что спросит препод

Не нашел нужную задачу?

Воспользуйся поиском

Выбери предмет