PostgreSQL: расширения SQL
Предпосылки: SQL (весь курс SQL).
PostgreSQL расширяет стандартный SQL типами данных, операторами, DDL-конструкциями и query-фичами. Нумерация файлов задаёт рекомендованный порядок чтения, но темы в основном независимы — любой файл можно читать после завершения основного курса SQL.
Порядок изучения
Типы данных и операторы
- JSONB — работа с JSON внутри SQL
- Массивы и диапазоны — ARRAY, range types
Поиск
- Полнотекстовый поиск — tsvector, tsquery, ranking
Процедурный SQL
- Функции и процедуры — CREATE FUNCTION, PL/pgSQL
- Триггеры — автоматический вызов функций при DML
Production DDL
- Индексы в production — CONCURRENTLY, REINDEX, USING INDEX
- EXCLUSION — запрет пересечений
- Партиционирование — RANGE/LIST/HASH, pruning, retention
- Материализованные представления — REFRESH, CONCURRENTLY
Изменение данных
- Составные DML в PostgreSQL — UPDATE…FROM, DELETE…USING, writable CTEs, MERGE с DELETE (PG 17)
Запросы
- DISTINCT ON — top-1 в группе одной строкой
Как всё связано
Мощность vs портативность: Каждая конструкция в этом разделе — PG-специфичная. При переходе на другую СУБД потребуется адаптация: стандартный SQL из основного курса переносится, расширения — нет.
См. также
- PostgreSQL internals — как всё это работает под капотом
Sources
- PostgreSQL Documentation (v16). https://www.postgresql.org/docs/16/