PostgreSQL с нуля: SQL, индексы и оптимизация

Изучите PostgreSQL и SQL с нуля: SELECT, JOIN, GROUP BY, CTE, INSERT, UPDATE, транзакции, JSONB, индексы и EXPLAIN ANALYZE. Разберитесь в проектировании схем, оптимизации запросов, функциях, триггерах, безопасности и администрировании PostgreSQL. Теория закрепляется тестами и практическими заданиями.
Начальный уровень
4-5 часов в неделю
Сертификат Stepik

Чему вы научитесь

  • Устанавливать 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 с нуля Backend-разработчики, которым необходимо уверенно работать с PostgreSQL Разработчики, которые хотят научиться проектировать и оптимизировать базы данных Аналитики и специалисты по данным, работающие с PostgreSQL Тестировщики, которым нужен SQL для проверки данных в базе Студенты IT- и технических направлений Специалисты, которые уже знают базовый SQL и хотят изучить возможности PostgreSQL глубже Разработчики, которым нужно разобраться в индексах, EXPLAIN, транзакциях и производительности запросов

Начальные требования

Предварительное знание PostgreSQL не требуется
Знание SQL не требуется: курс начинается с основ
Опыт программирования не обязателен
Понадобится компьютер, на который можно установить PostgreSQL
Желательно уверенно работать с файлами и устанавливать программы

Как проходит обучение

Обучение построено от простого к сложному. Сначала Вы изучаете новую возможность PostgreSQL или конструкцию SQL, разбираете примеры, а затем закрепляете материал тестами и практическими заданиями.

По мере прохождения курса задачи переходят от простых SELECT-запросов к JOIN, CTE, индексам, транзакциям, EXPLAIN ANALYZE и проектированию схем базы данных.

Отдельное внимание уделяется не только синтаксису, но и причинам поведения PostgreSQL: работе индексов, планировщика запросов, транзакций, ограничений и механизмов целостности.

Курс можно проходить в собственном темпе и возвращаться к пройденным материалам для повторения.

Программа курса

В курс входят

  • 75 уроков
  • 364 теста
  • 124 интерактивные задачи
загружаем...

Наши преподаватели

Certificate

Сертификат

Сертификат Stepik

Что вы получаете

  • Системное понимание PostgreSQL и SQL
  • Навык написания SQL-запросов от SELECT до сложных CTE
  • Практический опыт работы с JOIN, агрегатами и изменением данных
  • Понимание PostgreSQL-типов данных, JSON и JSONB
  • Навыки создания и выбора подходящих индексов
  • Умение анализировать запросы через EXPLAIN и EXPLAIN ANALYZE
  • Понимание транзакций, изоляции и взаимных блокировок
  • Навыки проектирования таблиц, связей и ограничений целостности
  • Понимание VIEW, функций, процедур и триггеров
  • Базовые навыки администрирования и мониторинга PostgreSQL
  • Понимание нормализации, денормализации и проектирования схем под нагрузку
  • Базу для использования PostgreSQL в backend-приложениях
  • Сертификат Stepik после успешного завершения курса

Сколько стоит обучение

1 390 ₽
Вы попробовали и поняли, что вам сейчас не подходит этот курс? Ничего страшного, мы вернём вам деньги в течение 30-ти дней после покупки.

Часто задаваемые вопросы

Расскажите о курсе друзьям