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

Занятие 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.

🐛 Типичные ошибки

Сравнение NULL через =

Неверно: WHERE shipped_date = NULL

Верно: WHERE shipped_date IS NULL

Причина: NULL — неизвестное значение, поэтому любое сравнение через = даёт UNKNOWN, а не TRUE.

Забытые скобки с OR

Неверно: WHERE a = 1 OR b = 2 AND c = 3AND выполнится раньше.

Верно: WHERE (a = 1 OR b = 2) AND c = 3

LIKE без кавычек

Неверно: WHERE name LIKE A%

Верно: WHERE name LIKE 'A%'

Неправильный порядок BETWEEN

Неверно: WHERE x BETWEEN 20 AND 10

Верно: WHERE x BETWEEN 10 AND 20

Путаница % и _

% — любое количество символов, _ — ровно один. Если нужно найти строку длиной 1 символ, используйте _.