Теорія/Квест: Складні SQL запити

Вкладені запити та об’єднання таблиць у SELECT

Мета:

Огляд складних запитів для роботи з великими обсягами даних, включаючи вкладені запити та об’єднання таблиць.

План:

  • Вкладені запити (Subqueries):
    • Використання SELECT у WHERE
    • Вкладені запити у FROM (Derived Tables)
    • Використання SELECT у колонках (Scalar Subqueries)
  • Об’єднання таблиць (JOIN):
    • INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL OUTER JOIN
    • Комбінування кількох JOIN в одному запиті

Об’єднання результатів і оптимізація SELECT

Мета:

Розгляд методів об’єднання результатів запитів та оптимізація SELECT-запитів.

План:

  • Об’єднання результатів запитів:
    • UNION, UNION ALL
    • INTERSECT, EXCEPT
  • Робота з умовами:
    • Використання CASE для умовного вибору даних
    • Складні логічні оператори у WHERE
  • Робота з віконними функціями (Window Functions):
    • ROW_NUMBER, RANK, DENSE_RANK, NTILE
    • Використання OVER для розбиття даних на групи
  • Оптимізація SELECT-запитів:
    • Використання індексів
    • Аналіз продуктивності запитів через EXPLAIN

Складні сценарії використання INSERT

Мета:

Дослідження методів ефективного додавання даних, обробки конфліктів, використання транзакцій та оптимізації вставки.

План:

  • Масове додавання даних (Batch Insert)
  • Використання INSERT із SELECT
  • Обробка конфліктів під час вставки:
    • ON DUPLICATE KEY UPDATE (MySQL)
    • ON CONFLICT (PostgreSQL)
    • INSERT OR REPLACE (SQLite)
  • Використання транзакцій для INSERT:
    • Додавання даних у кілька таблиць із забезпеченням цілісності
  • Автоматизація вставки:
    • Використання тригерів для автоматичної обробки даних
  • Оптимізація INSERT:
    • Зменшення блокувань таблиць
    • Використання пакетних вставок для великих обсягів даних
  • Робота зі складними структурами даних:
    • Вставка JSON-даних у таблиці
    • Використання функцій для розбиття й обробки вкладених даних
06/03/2025
Завершилася
  • Dmytro Markulych
    Dmytro Markulych

    Досвід роботи 5 роки:
    2021 – present QA engineer GG4L
    2019 – 2021 Software engineer at ATENA

    Досвід викладацької діяльності:
    2022 – зараз – Trainer в QAX Camp

Місцевий час:

10:30 - 11:30
Майбутні події: