Занятие 02. Оператор WHERE. Специальное значение NULL
⚡ Кратко: суть темы
Занятие учит фильтровать строки в SQL-запросах с помощью оператора WHERE. Мы разберём операторы сравнения, логические операторы AND/OR/NOT, поиск по маске LIKE, множественный выбор IN и BETWEEN, а также правила работы со специальным значением NULL.
WHEREидёт послеFROMи отбирает только подходящие строки.- Операторы сравнения:
=,<>/!=,<,<=,>,>=. LIKEиспользует%(любые символы) и_(один символ).NULL— отсутствие значения; для проверки используются толькоIS NULLиIS NOT NULL.
Что запомнить: NULL = NULL не истинно — никогда не сравнивайте NULL обычными операторами.
Частая ошибка: писать WHERE column = NULL вместо WHERE column IS NULL.
✅ Решения
1. Простое условие
SELECT *
FROM order_details
WHERE unit_price > 20;
2. Комбинация AND
SELECT *
FROM order_details
WHERE product_id = 43
AND status_id = 2;
3. OR
SELECT *
FROM order_details
WHERE quantity <= 15
OR unit_price = 15;
4. Исключение значений
SELECT inventory_id
FROM order_details
WHERE order_id <> 46
AND order_id <> 79;
5. Скобки
SELECT *
FROM order_details
WHERE unit_price > 9
AND (order_id = 30 OR status_id = 1);
6–8. LIKE
SELECT *
FROM employees
WHERE first_name LIKE 'A%';
SELECT *
FROM employees
WHERE city LIKE '%mond';
SELECT home_phone
FROM employees
WHERE notes LIKE '%French%'
AND last_name LIKE '%k%';
9–10. BETWEEN и IN
SELECT *
FROM orders
WHERE shipping_fee BETWEEN 10 AND 15;
SELECT ship_name
FROM orders
WHERE ship_city IN ('Chicago', 'Miami');
11–12. NULL
SELECT *
FROM orders
WHERE shipped_date IS NULL;
SELECT id
FROM orders
WHERE shipped_date IS NULL
AND shipper_id IS NULL;