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

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

📖 Оператор WHERE

Оператор WHERE ограничивает выборку, оставляя только те строки, которые удовлетворяют заданному условию. Он размещается после FROM и является необязательным, но на практике используется почти всегда.

SELECT column1, column2
FROM table_name
WHERE condition;

В условии могут участвовать константы, литералы, имена столбцов, функции и операторы сравнения.

📖 Операторы сравнения

СимволЗначение
=равенство
<> или !=неравенство
<меньше
<=меньше или равно
>больше
>=больше или равно

📖 Логические операторы

  • AND — истинно, если оба условия истинны.
  • OR — истинно, если хотя бы одно условие истинно.
  • NOT — инвертирует результат сравнения.

Приоритет: сначала выполняются арифметические операции, затем операторы сравнения, затем логические. Для управления порядком используйте скобки.

📖 Поиск по маске: LIKE

LIKE сравнивает строку с шаблоном:

  • % — любое количество любых символов (в том числе ноль).
  • _ — ровно один любой символ.
-- имена на букву A
WHERE first_name LIKE 'A%'
-- города, заканчивающиеся на 'mond'
WHERE city LIKE '%mond'

📖 Множественный выбор: IN и BETWEEN

IN проверяет вхождение значения в список. Это краткая запись нескольких OR.

WHERE ship_city IN ('Chicago', 'Miami');

BETWEEN выбирает значения в диапазоне включительно. Эквивалент >= и <=.

WHERE shipping_fee BETWEEN 10 AND 15;

📖 Специальное значение NULL

NULL означает «значение неизвестно» или «данные отсутствуют». Оно не равно ничему, включая другое NULL. Поэтому нельзя писать column = NULL.

Для проверки используются:

  • IS NULL — значение отсутствует.
  • IS NOT NULL — значение присутствует.
WHERE shipped_date IS NULL;