Теорія/Квест: Складні 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
Досвід роботи 5 роки:
2021 – present QA engineer GG4L
2019 – 2021 Software engineer at ATENAДосвід викладацької діяльності:
2022 – зараз – Trainer в QAX Camp
Місцевий час:
10:30 - 11:30Майбутні події:
Поки що без подій. Але це — ненадовго :)