Основи баз даних
VTFK • 2025
Лекція 7: SELECT та функції
Фокус: отримувати тільки потрібні рядки
Умова, яка фільтрує рядки перед SELECT; повертаються тільки рядки де умова TRUE.
Аналогія: Як сито: більшість падає, залишається тільки релевантне
Виконання кроків
SELECT column1, column2
FROM table
WHERE condition;
| Оператор | Назва | Приклад |
|---|---|---|
| = | дорівнює | age = 25 |
| != | не дорівнює | status != 'inactive' |
| > | більше | price > 100 |
| < | менше | age < 65 |
| >= | більше або рівно | salary >= 50000 |
| <= | менше або рівно | quantity <= 10 |
Різні умови
-- Точна вибір
SELECT * FROM users WHERE age = 25;
-- Діапазон
SELECT * FROM products WHERE price > 100;
-- Рядкова умова
SELECT * FROM users WHERE status != 'inactive';
-- Дата
SELECT * FROM orders WHERE created_at > '2025-01-01';
Розширені фільтри
-- Діапазон
SELECT * FROM users WHERE age BETWEEN 18 AND 65;
-- Один з варіантів
SELECT * FROM orders WHERE status IN ('shipped', 'delivered');
-- Патерн тексту
SELECT * FROM users WHERE email LIKE '%gmail.com';
SELECT * FROM products WHERE name LIKE 'Product%';
BETWEEN включає обидва краї (18 і 65).
Включена або виключена границя
AND vs OR змінюють результат
SELECT * FROM users
WHERE age > 18 OR age < 65;
-- це включить ВСІХ!
OR означає 'будь-яке з двох'. Тут всі вікові значення задовольняють
SELECT * FROM users
WHERE age >= 18 AND age <= 65;
-- Правильний діапазон
AND означає обидві умови мають бути TRUE
Від простих до складних
= > < only
BETWEEN, IN, LIKE
CASE для складної логіки
WHERE на JSON полях
Кілька умов разом
SELECT id, user_id, amount, created_at
FROM orders
WHERE
amount > 50
AND created_at >= DATE_SUB(now(), INTERVAL 30 DAY)
AND status IN ('shipped', 'delivered')
AND user_id IS NOT NULL;
Далі — AND/OR/NOT для комбінування умов
Лекція 9: AND/OR/NOT
Дякую за увагу! 💾