Чему вы научитесь
- Устанавливать PostgreSQL и создавать собственные базы данных
- Писать SQL-запросы с SELECT, WHERE, ORDER BY, LIMIT и DISTINCT
- Работать с NULL, числами, текстом, датами, Boolean, ENUM, JSON и JSONB
- Добавлять, изменять и удалять данные через INSERT, UPDATE и DELETE
- Использовать возможности PostgreSQL RETURNING и UPSERT через ON CONFLICT
- Применять агрегатные функции, GROUP BY и HAVING
- Проектировать связи One-to-One, One-to-Many и Many-to-Many
- Объединять таблицы с помощью INNER, LEFT, RIGHT, FULL и SELF JOIN
- Использовать подзапросы, EXISTS, CTE и рекурсивные CTE
- Создавать B-tree, Hash, GIN, GiST, составные и частичные индексы
- Анализировать запросы с помощью EXPLAIN и EXPLAIN ANALYZE
- Понимать работу планировщика запросов PostgreSQL
- Находить причины медленных запросов и проблемы N+1
- Работать с транзакциями, ACID и уровнями изоляции
- Понимать причины deadlock и способы их предотвращения
- Использовать ограничения NOT NULL, UNIQUE, CHECK и FOREIGN KEY
- Создавать VIEW и MATERIALIZED VIEW
- Работать с пользовательскими функциями, процедурами и триггерами
- Подключать PostgreSQL к приложениям и использовать пулы соединений
- Защищать SQL-запросы от SQL-инъекций
- Выполнять миграции схемы базы данных
- Настраивать роли, права доступа, резервное копирование и восстановление
- Применять нормализацию и денормализацию при проектировании схем
- Проектировать PostgreSQL-базы с учётом производительности и нагрузки
О курсе
PostgreSQL — одна из наиболее распространённых реляционных систем управления базами данных с открытым исходным кодом. Она используется в веб-приложениях, backend-сервисах, корпоративных системах, аналитике и других проектах, где важны надёжность, целостность данных и развитые возможности SQL.
Этот курс поможет изучить PostgreSQL и SQL с нуля и постепенно перейти от простых запросов к проектированию, оптимизации и администрированию базы данных. В начале Вы разберётесь в устройстве реляционной модели, таблиц, строк и столбцов, установите PostgreSQL и выполните первые SQL-запросы.
Затем Вы научитесь использовать SELECT, WHERE, ORDER BY, LIMIT и DISTINCT, работать с NULL и основными типами данных PostgreSQL. Отдельно рассматриваются даты и время, Boolean, ENUM, а также JSON и JSONB.
После освоения выборок Вы перейдёте к изменению данных: INSERT, UPDATE, DELETE, RETURNING и UPSERT через ON CONFLICT. Далее изучите агрегатные функции, GROUP BY, HAVING и практические аналитические запросы.
Большой раздел посвящён проектированию связей между таблицами. Вы разберёте первичные и внешние ключи, связи One-to-One, One-to-Many и Many-to-Many, а также INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN и SELF JOIN.
Для построения более сложных запросов рассматриваются подзапросы, EXISTS, Common Table Expressions и рекурсивные CTE.
Отдельное внимание уделено производительности PostgreSQL. Вы познакомитесь с B-tree, Hash, GIN и GiST индексами, составными и частичными индексами, научитесь использовать EXPLAIN и EXPLAIN ANALYZE и разберётесь в базовых принципах работы планировщика запросов. Также рассматриваются причины медленных запросов и проблема N+1.
В разделе по транзакциям Вы изучите свойства ACID, команды BEGIN, COMMIT и ROLLBACK, уровни изоляции и причины возникновения взаимных блокировок.
Курс также охватывает ограничения целостности, VIEW и MATERIALIZED VIEW, пользовательские функции, хранимые процедуры и триггеры.
В заключительных разделах рассматривается использование PostgreSQL в приложениях: подключения, пулы соединений, prepared statements, защита от SQL-инъекций и миграции схемы. Вы также познакомитесь с ролями и правами доступа, резервным копированием, восстановлением, мониторингом и обслуживанием PostgreSQL.
Завершается курс проектированием баз данных: нормализацией, денормализацией, проектированием схем под нагрузку, SQL-антипаттернами и разбором практических сценариев.
Материал идёт от основ к более сложным возможностям PostgreSQL и закрепляется тестами и практическими заданиями.
Для кого этот курс
Начальные требования
Предварительное знание PostgreSQL не требуется
Знание SQL не требуется: курс начинается с основ
Опыт программирования не обязателен
Понадобится компьютер, на который можно установить PostgreSQL
Желательно уверенно работать с файлами и устанавливать программы
Как проходит обучение
Обучение построено от простого к сложному. Сначала Вы изучаете новую возможность PostgreSQL или конструкцию SQL, разбираете примеры, а затем закрепляете материал тестами и практическими заданиями.
По мере прохождения курса задачи переходят от простых SELECT-запросов к JOIN, CTE, индексам, транзакциям, EXPLAIN ANALYZE и проектированию схем базы данных.
Отдельное внимание уделяется не только синтаксису, но и причинам поведения PostgreSQL: работе индексов, планировщика запросов, транзакций, ограничений и механизмов целостности.
Курс можно проходить в собственном темпе и возвращаться к пройденным материалам для повторения.
Программа курса
В курс входят
- 75 уроков
- 364 теста
- 124 интерактивные задачи
Наши преподаватели
Сертификат
Что вы получаете
- Системное понимание PostgreSQL и SQL
- Навык написания SQL-запросов от SELECT до сложных CTE
- Практический опыт работы с JOIN, агрегатами и изменением данных
- Понимание PostgreSQL-типов данных, JSON и JSONB
- Навыки создания и выбора подходящих индексов
- Умение анализировать запросы через EXPLAIN и EXPLAIN ANALYZE
- Понимание транзакций, изоляции и взаимных блокировок
- Навыки проектирования таблиц, связей и ограничений целостности
- Понимание VIEW, функций, процедур и триггеров
- Базовые навыки администрирования и мониторинга PostgreSQL
- Понимание нормализации, денормализации и проектирования схем под нагрузку
- Базу для использования PostgreSQL в backend-приложениях
- Сертификат Stepik после успешного завершения курса