Какие операторы используются для задания условий в предложении WHERE SQL?

«Какие операторы используются для задания условий в предложении WHERE SQL?» — вопрос из категории Базы данных и SQL, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Условия в SQL формируются с помощью трех групп операторов в предложении WHERE, HAVING или ON.

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

Используются для сравнения значений.

  • = — равно.
  • <> или != — не равно.
  • > — больше.
  • < — меньше.
  • >= — больше или равно.
  • <= — меньше или равно.

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

Комбинируют несколько условий.

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

3. Специальные операторы для работы с наборами и шаблонами

  • BETWEEN — проверяет вхождение в диапазон (включительно).
  • IN — проверяет вхождение в список значений.
  • LIKE / ILIKE — сопоставление строки с шаблоном (с использованием % и _). ILIKE — регистронезависимый (в некоторых СУБД).
  • IS NULL / IS NOT NULL — проверка на NULL (использовать = NULL некорректно!).
  • EXISTS — проверяет существование строк в подзапросе.

Пример комплексного условия:

SELECT id, name, age, city, registration_date
FROM users
WHERE age >= 18
  AND city IN ('Moscow', 'London', 'Berlin')
  AND (registration_date BETWEEN '2023-01-01' AND '2023-12-31')
  AND email IS NOT NULL
  AND name LIKE 'A%' -- Имена, начинающиеся на 'A'
  AND NOT status = 'banned';

Ключевой момент: Условия вычисляются с учетом приоритета (NOT > AND > OR). Всегда используйте скобки () для явного задания логики, особенно с OR.