← К оглавлению занятия

Занятие 02. Оператор WHERE. Специальное значение NULL

📁 Блок: SQL / MySQL ⏱️ Время изучения: ~60 мин 🎯 Сложность: Начальная
#and #or #not #like #in #between #null #where

⚡ Кратко: суть темы

Занятие учит фильтровать строки в 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. Простое условие

USE northwind;

SELECT *
FROM order_details
WHERE unit_price > 20;

Выбирает строки из order_details, где цена единицы товара больше 20.

2. Комбинация условий

SELECT *
FROM order_details
WHERE product_id = 43
  AND status_id = 2;

Оба условия должны выполняться одновременно.

3. OR и скобки

SELECT *
FROM order_details
WHERE unit_price > 9
  AND (order_id = 30 OR status_id = 1);

Эквивалентно (unit_price > 9 AND order_id = 30) OR (unit_price > 9 AND status_id = 1), но читается проще.

4. LIKE

SELECT *
FROM employees
WHERE first_name LIKE 'A%';

5. IN и BETWEEN

SELECT ship_name
FROM orders
WHERE ship_city IN ('Chicago', 'Miami');

SELECT *
FROM orders
WHERE shipping_fee BETWEEN 10 AND 15;

6. IS NULL

SELECT *
FROM orders
WHERE shipped_date IS NULL;