SQLLab

Блог об SQL

Разборы, уроки и советы — от основ до продвинутых техник

13 статей по теме Продвинутый

PostgreSQLPL/pgSQLПродвинутый

Динамический SQL в PostgreSQL: EXECUTE и строим запросы программно

Динамический SQL в PostgreSQL: EXECUTE в PL/pgSQL, FORMAT для безопасного построения запросов, защита от SQL-инъекций. Примеры с необязательными фильтрами.

30 марта 2026 г.·4 мин чтения
АналитикаПроектированиеПродвинутый

Витрины данных на SQL: от сырых таблиц к готовым отчётам

Построение витрин данных на SQL: денормализация, звёздная схема, медленно меняющиеся измерения (SCD Type 2), MATERIALIZED VIEW для витрин.

29 марта 2026 г.·4 мин чтения
АналитикаСтатистикаПродвинутый

А/Б тестирование на SQL: считаем статистическую значимость

А/Б тестирование на SQL: сравнение конверсий, z-тест для пропорций, p-value в PostgreSQL. Как проверить результаты эксперимента без Python.

28 марта 2026 г.·4 мин чтения
PostgreSQLАналитикаПродвинутый

PIVOT в SQL: превращаем строки в столбцы

PIVOT в SQL: условная агрегация через CASE WHEN, расширение tablefunc и crosstab в PostgreSQL, динамический PIVOT. Примеры отчётов.

26 марта 2026 г.·4 мин чтения
PostgreSQLТранзакцииПродвинутый

Продвинутые транзакции в PostgreSQL: SAVEPOINT и обработка ошибок

Продвинутые транзакции PostgreSQL: SAVEPOINT, ROLLBACK TO SAVEPOINT, вложенные транзакции, обработка deadlock на стороне приложения.

25 марта 2026 г.·4 мин чтения
Оконные функцииPostgreSQLПродвинутый

Оконные функции SQL: продвинутые техники и фреймы

Продвинутые оконные функции SQL: ROWS vs RANGE, фреймы PRECEDING/FOLLOWING, скользящие окна, EXCLUDE, FIRST_VALUE/LAST_VALUE. Примеры на PostgreSQL.

25 марта 2026 г.·4 мин чтения
PostgreSQLОптимизацияПродвинутый

Секционирование таблиц в PostgreSQL: PARTITION BY RANGE, LIST, HASH

Секционирование в PostgreSQL: PARTITION BY RANGE, LIST, HASH. Когда нужно секционирование, как создать и управлять секциями, прирост производительности.

24 марта 2026 г.·5 мин чтения
PostgreSQLТранзакцииПродвинутый

Блокировки в PostgreSQL: FOR UPDATE, deadlock и как с ними работать

Блокировки в PostgreSQL: строчные и табличные блокировки, SELECT FOR UPDATE, FOR SHARE, обнаружение и предотвращение deadlock. Практические примеры.

23 марта 2026 г.·5 мин чтения
PostgreSQLОптимизацияПродвинутый

Materialized View в PostgreSQL: кэшируем тяжёлые запросы

Materialized View в PostgreSQL: создание, REFRESH MATERIALIZED VIEW, конкурентное обновление, отличие от обычного VIEW. Когда использовать и как избежать проблем.

22 марта 2026 г.·5 мин чтения
PostgreSQLJSONПродвинутый

JSONB в PostgreSQL: хранение и запросы к полуструктурированным данным

JSONB в PostgreSQL: операторы ->, ->>, @>, GIN-индексы, jsonb_array_elements, обновление полей. Когда использовать JSONB вместо отдельных таблиц.

21 марта 2026 г.·5 мин чтения
PostgreSQLJOINПродвинутый

LATERAL JOIN в PostgreSQL: когда подзапрос становится циклом

LATERAL JOIN в PostgreSQL: синтаксис, применение для топ-N в каждой группе, вызов функций для каждой строки, сравнение с обычным подзапросом.

19 марта 2026 г.·4 мин чтения
PostgreSQLАдминистрированиеПродвинутый

Миграции базы данных: как менять схему без даунтайма

Zero-downtime миграции PostgreSQL: как добавить колонку, создать индекс CONCURRENTLY, переименовать таблицу без блокировок. Практические паттерны.

10 марта 2026 г.·5 мин чтения
HRСобеседованиеПродвинутыйСкрининг

SQL: как отличить middle от senior на собеседовании

Практическое руководство для HR: конкретные критерии и вопросы, которые помогут разграничить уровни middle и senior по SQL.

15 января 2026 г.·3 мин чтения