>_ IzzyLab

Практическое задание

SQLite: создай представление (VIEW)

средне

В базе /root/shop.db есть таблица sales(id, category, amount). Создай представление (VIEW) с именем category_totals, у которого две колонки: category и total — суммарная выручка по каждой категории.

Представление должно остаться в базе (не файл с результатом, а объект view), чтобы к нему можно было обращаться как к таблице: SELECT * FROM category_totals.

Что потренируешь:
  • sqlite3
  • create view
  • представления
  • именованный запрос
  • sqlite_master

Разбор темы

Представление (VIEW) — это сохранённый в схеме именованный SELECT: обращаешься к нему как к обычной таблице, но данных оно не хранит, а каждый раз пересчитывает лежащий под ним запрос. Внутри может быть любая логика, включая группировку с агрегатами; колонкам удобно давать явные имена через AS. Все объекты базы (таблицы, индексы, представления) SQLite перечисляет в служебной таблице sqlite_master с полем type.

Что проверяется

  1. представление category_totals создано
  2. представление возвращает верную сумму по категории
  3. сумма по второй категории тоже верна

Как это выглядит