PostgreSQL
Полный курс по PostgreSQL. Основы SQL, объединения таблиц, индексы, транзакции, JSONB, EXPLAIN и проектирование схем.
14 уроков по порядку
- 120 мин
Что такое PostgreSQL
Представьте, что вы ведёте учёт всех клиентов, заказов и товаров небольшого магазина в электронной таблице. Всё работает ровно до того момента, когда...
Relational databaseACIDMVCCPostgres vs MySQL vs SQLiteWhere Postgres shines - 225 мин
psql и первые команды
Теперь вы знаете, зачем нужен Postgres. Следующий вопрос куда более практический: как с ним вообще разговаривать? Запущенный сервер Postgres просто...
Psql command line clientConnecting as postgres userMeta commands like \l \c \dt \d \qSemicolons end statementsMultiline queriesSELECT version() - 330 мин
Создание баз данных и таблиц
До сих пор вы только осматривались на сервере, который настроил кто-то другой. Чтобы освоиться с инструментами, этого достаточно, но на настоящем...
CREATE DATABASECREATE TABLEPRIMARY KEYNOT NULLDEFAULTDROP TABLE+1 - 425 мин
Типы данных
У каждого столбца, который вы создавали до сих пор, был тип: TEXT, SERIAL, TIMESTAMPTZ, но особо не объяснялось, почему именно этот тип, а не другой....
Integer and bigintNumeric vs floatText and varcharBooleanTimestamptz vs timestampDate+3 - 530 мин
SELECT и WHERE
У вас есть таблица на несколько тысяч строк, а нужно из них всего семь. Не все, не первая сотня, а именно те семь, что подходят под правило, которое...
SELECT specific columnsWHERE with AND ORBETWEENINLIKE and ILIKEIS NULL+2 - 635 мин
Джойны (joins)
Ваши данные лежат не в одной таблице, и это правильно. Пользователи живут в users, их посты живут в posts, а единственное, что связывает пост с...
INNER JOINLEFT JOINRIGHT JOINFULL OUTER JOINSelf joinUSING vs ON - 730 мин
Агрегаты и группировка
Кто-то спрашивает вас, как магазин отработал в прошлом месяце. Он не хочет видеть четыре тысячи строк заказов. Он хочет одно число, а может, одно...
COUNTSUMAVGMINMAXGROUP BY+3 - 835 мин
Индексы (indexes)
На вашем ноутбуке запрос отрабатывал мгновенно на двухстах тестовых строках. В продакшене, на четырёх миллионах строк, тот же запрос выполняется...
B-tree defaultCREATE INDEXMulti-column indexPartial index WHERE activeUnique indexWrite cost+1 - 935 мин
Транзакции (transactions) и изоляция (isolation)
Два выражения UPDATE переводят деньги от Alice к Bob. Первое выполняется, соединение обрывается, второе так и не происходит, и тридцать фунтов просто...
BEGIN COMMIT ROLLBACKSavepointsREAD COMMITTED defaultREPEATABLE READSERIALIZABLEDirty read non-repeatable read phantom read serialization anomaly - 1035 мин
Функции (functions) и триггеры (triggers)
В каждой таблице вашей схемы есть столбец updated_at, и в каждой из них он неверен. Не всегда, а только на тех путях кода, где кто-то забыл его...
CREATE FUNCTIONLANGUAGE plpgsqlRETURNSCREATE TRIGGERBEFORE UPDATENEW and OLD+1 - 1135 мин
JSONB и массивы
Некоторые данные никак не хотят укладываться в столбцы. Таблица products, где у ноутбуков есть объём RAM, у клавиатур - тип переключателей, у...
JSONB column-> operator->> operator@> contains operatorGIN index on jsonbText[] and integer[] arrays+2 - 1235 мин
EXPLAIN и настройка запросов
Страница, которая раньше загружалась мгновенно, теперь занимает девять секунд, и первый порыв - начать гадать. Добавить индекс сюда. Переписать join....
EXPLAINEXPLAIN ANALYZESeq scan vs index scan vs index-only scanFixing a missing indexPg_stat_statements overview - 1325 мин
Резервное копирование и восстановление
Ночная задача уже восемь месяцев пишет файл на диск, и никто ни разу его не открывал. Это не резервная копия, это файл, на который просто надеются....
Pg_dump custom formatPg_restorePlain SQL dumpsPoint-in-time recovery overview - 1460 мин
Итоговый проект: Разработка схемы
Все предыдущие уроки давали вам готовую таблицу и просили сделать по ней запрос. Реальная работа устроена наоборот: кто-то описывает продукт, а вам...
Schema designPrimary and foreign keysIndexes on hot columnsUpdated_at triggerJSONB metadataJoins with aggregates+1
Изучай PostgreSQL на своём языке
Каждый урок, тест и ответ наставника показывается на вашем языке. AI-наставник отвечает на том языке, на котором вы пишете.
Roles that use PostgreSQL
See how hiring teams interview engineers on PostgreSQL, in production-like environments.
Database Administrator (DBA)
Hire DBAs in real workspaces with PostgreSQL or MySQL, real replication lag, real slow queries and real backups to restore. Live or take-home.
See the interviewBackend Engineer (Go, Rust, Java)
Hire backend engineers in real services with real databases, real concurrency and real latency budgets. Live or take-home, fully recorded.
See the interviewData Engineer
Hire data engineers in workspaces with real Spark, dbt and Airflow pipelines. Schema drift, bad data and reruns included.
See the interview