S
SQLite на практике
@sqliter2.3K подп.
5.5Kпросмотров
8 мая 2024 г.
Score: 6.0K
Современный SQLite: Вычисляемые столбцы Вычисляемые (generated) столбцы рассчитываются на основании других столбцов той же таблицы. Например, мы можем рассчитать процент отказов на основе количества запросов: create table stats ( date text, n_total int, n_failed int, fail_perc as (n_failed*100.0 / n_total) ); Другой распространенный сценарий — вытащить поле JSON-документа в отдельный столбец, и при необходимости проиндексировать его: create table events ( id integer primary key, event blob, etime text as (event ->> 'time'), etype text as (event ->> 'type') ); create index events_time on events(etime); insert into events(event) values ('{"time": "2024-05-01", "type": "credit"}'), ('{"time": "2024-05-02", "type": "debit"}'), ('{"time": "2024-05-03", "type": "close"}'); select etime, etype from events; Результат: ┌────────────┬────────┐ │ etime │ etype │ ├────────────┼────────┤ │ 2024-05-01 │ credit │ │ 2024-05-02 │ debit │ │ 2024-05-03 │ close │ └────────────┴────────┘ Так SQLite превращается в документную базу данных: — Храним JSON-документы как текст или blob-поле. — Извлекаем отдельные поля через вычисляемые столбцы. — Строим индексы, если нужна быстрая выборка. Вычисляемые столбцы могут рассчитываться на лету (virtual) или храниться на диске (stored). Stored-столбцы редко используют на практике. Работает в SQLite 3.31+ (январь 2020). песочница • документация
5.5K
просмотров
1460
символов
Нет
эмодзи
Нет
медиа

Другие посты @sqliter

Все посты канала →
Современный SQLite: Вычисляемые столбцы Вычисляемые (generat — @sqliter | PostSniper