WHERE: фильтрация строк
Содержание курса
В прошлом уроке мы выбирали, какие столбцы вернуть и как их назвать. Сейчас займёмся другим измерением — какие строки вообще попадут в результат. Именно это делает WHERE.
WHERE и операторы сравнения: механизм фильтрации строк
WHERE записывается сразу после FROM и содержит условие — логическое выражение, которое вычисляется для каждой строки таблицы. Если оно равно TRUE, строка включается в результат. Если FALSE или NULL — отбрасывается. Никакого исключения: именно три возможных значения (TRUE / FALSE / NULL) определяют судьбу строки.
Предположим, таблица products содержит столбцы product_id, title и price. Самый прямой запрос:
SELECT title, price
FROM products
WHERE price > 10000;
SQL проходит по каждой строке, подставляет значение price и проверяет неравенство. Строки с price 32 000 или 15 000 проходят; строки с price 1 200 — нет.
Шесть операторов сравнения работают предсказуемо:
=— равно (для чисел и строк)<>— не равно<,>— строго меньше / больше<=,>=— меньше или равно / больше или равно
Пример с точным совпадением:
SELECT title, price
FROM products
WHERE price = 1200;
А вот обратный случай:
SELECT title, price
FROM products
WHERE price <> 1200;
Операторы сравнения работают и со строками. WHERE title = 'Мышь' найдёт строку с точным совпадением названия. Сравнение строк идёт лексикографически, поэтому > и < для строк тоже имеют смысл, хотя на практике их используют реже, чем для чисел.

