Побудова запиту: SQL (DDL, DML, DCL, TCL)
Розділ: Бази та сховища даних
📌 Про що ця тема
SQL — це мова для роботи з реляційними базами даних. На іспиті перевіряють, чи вмієш ти розрізняти групи команд (DDL, DML, DCL, TCL) і розуміти, яка команда для чого служить: створення структури, зміна даних, права доступу, керування транзакціями. Ключове поняття — запит (команда до бази).
📖 Головне
• SQL ділять на 4 групи команд за призначенням: DDL, DML, DCL, TCL.
• DDL (Data Definition Language) — визначення структури бази: CREATE (створити таблицю/базу), ALTER (змінити структуру), DROP (видалити об'єкт повністю), TRUNCATE (очистити всі рядки таблиці, але структура лишається).
• DML (Data Manipulation Language) — робота з даними в таблицях: SELECT (вибірка), INSERT (додати рядок), UPDATE (змінити дані), DELETE (видалити рядки).
• DCL (Data Control Language) — керування правами доступу: GRANT (надати право), REVOKE (відкликати право).
• TCL (Transaction Control Language) — керування транзакціями: COMMIT (підтвердити зміни), ROLLBACK (скасувати зміни), SAVEPOINT (точка збереження всередині транзакції).
• Структура SELECT: SELECT поля FROM таблиця WHERE умова ORDER BY поле.
• WHERE задає умову відбору рядків; оператори: =, <>, <, >, >=, <=, AND, OR, NOT, LIKE (шаблон), IN, BETWEEN.
• ORDER BY сортує результат: ASC — за зростанням (за замовчуванням), DESC — за спаданням.
• Агрегатні функції: COUNT (кількість), SUM (сума), AVG (середнє), MIN, MAX.
• GROUP BY групує рядки для агрегатних функцій; HAVING — умова для груп (на відміну від WHERE, що для окремих рядків).
• INSERT: INSERT INTO таблиця (поля) VALUES (значення).
• UPDATE: UPDATE таблиця SET поле = значення WHERE умова.
• DELETE: DELETE FROM таблиця WHERE умова.
🔢 Як це працює на прикладі
Задача: з таблиці Учні (поля: Ім'я, Клас, Бал) вибрати учнів 11 класу з балом понад 180, за спаданням балу.
SELECT Ім'я, Бал FROM Учні WHERE Клас = 11 AND Бал > 180 ORDER BY Бал DESC;
Крок 1: FROM — беремо таблицю Учні.
Крок 2: WHERE — лишаємо тільки рядки, де Клас = 11 і Бал > 180.
Крок 3: SELECT — показуємо поля Ім'я і Бал.
Крок 4: ORDER BY Бал DESC — сортуємо за спаданням.
Друга задача: середній бал по кожному класу.
SELECT Клас, AVG(Бал) FROM Учні GROUP BY Клас;
GROUP BY об'єднує рядки одного класу, AVG рахує середнє для кожної групи.
⚠️ Типові помилки
• Плутають DELETE і TRUNCATE та DROP: DELETE видаляє рядки (можна з WHERE), TRUNCATE чистить усі рядки, DROP знищує саму таблицю.
• Плутають DML і DDL: INSERT/UPDATE змінюють дані (DML), а ALTER змінює структуру (DDL).
• Забувають WHERE в UPDATE чи DELETE — тоді зміна торкнеться ВСІХ рядків.
• Плутають WHERE і HAVING: WHERE фільтрує рядки до групування, HAVING — уже готові групи.
• Відносять COMMIT/ROLLBACK до DML — це TCL (керування транзакціями).
🎯 Що завчити напам'ять
• DDL: CREATE, ALTER, DROP, TRUNCATE.
• DML: SELECT, INSERT, UPDATE, DELETE.
• DCL: GRANT, REVOKE.
• TCL: COMMIT, ROLLBACK, SAVEPOINT.
• Шаблон SELECT ... FROM ... WHERE ... GROUP BY ... HAVING ... ORDER BY.
• ASC — зростання, DESC — спадання.
🧠 Перевір себе
1. До якої групи належить команда ALTER?
2. Чим відрізняється TRUNCATE від DROP?
3. Яка команда надає права доступу?
4. Напиши запит, що виведе всіх учнів з таблиці Учні, відсортованих за ім'ям за зростанням.
Відповіді: 1 — DDL (змінює структуру таблиці); 2 — TRUNCATE видаляє всі рядки, але залишає структуру, DROP знищує всю таблицю; 3 — GRANT (група DCL); 4 — SELECT * FROM Учні ORDER BY Ім'я ASC;