WHERE и операторы сравнения
Учимся отбирать только нужные строки с помощью условия WHERE.
WHERE — это условие, которое оставляет в результате только строки, для которых оно истинно.
Простые сравнения
Условие в WHERE проверяется для каждой строки. Базовые операторы: = (равно), <> или != (не равно), <, >, <=, >=. Несколько условий объединяют через AND и OR.
CREATE TABLE products (
id INTEGER PRIMARY KEY, name TEXT, price INTEGER, category TEXT
);
INSERT INTO products (name, price, category) VALUES
('Клавиатура', 2500, 'Периферия'),
('Мышь', 1200, 'Периферия'),
('Монитор', 18000, 'Экраны'),
('Коврик', 600, 'Аксессуары'),
('Наушники', 5000, 'Аудио');
SELECT name, price
FROM products
WHERE category = 'Периферия' AND price > 1500;
Вывод:
Клавиатура|2500
BETWEEN — диапазон
BETWEEN a AND b проверяет, что значение попадает в диапазон включительно. Это короче и понятнее, чем price >= a AND price <= b.
CREATE TABLE products (id INTEGER PRIMARY KEY, name TEXT, price INTEGER);
INSERT INTO products (name, price) VALUES
('Клавиатура', 2500), ('Мышь', 1200), ('Монитор', 18000),
('Коврик', 600), ('Наушники', 5000);
SELECT name, price
FROM products
WHERE price BETWEEN 1000 AND 6000
ORDER BY price;
Вывод:
Мышь|1200 Клавиатура|2500 Наушники|5000
IN — список значений
IN (...) проверяет, что значение есть в списке. Заменяет цепочку условий через OR.
CREATE TABLE products (id INTEGER PRIMARY KEY, name TEXT, category TEXT);
INSERT INTO products (name, category) VALUES
('Клавиатура', 'Периферия'), ('Монитор', 'Экраны'),
('Наушники', 'Аудио'), ('Коврик', 'Аксессуары');
SELECT name, category
FROM products
WHERE category IN ('Аудио', 'Экраны');
Вывод:
Монитор|Экраны Наушники|Аудио
LIKE — поиск по шаблону
LIKE ищет строки по шаблону. Знак % заменяет любое число символов, _ — ровно один символ. В SQLite LIKE по умолчанию не различает регистр для латиницы.
CREATE TABLE products (id INTEGER PRIMARY KEY, name TEXT);
INSERT INTO products (name) VALUES
('Клавиатура'), ('Коврик'), ('Монитор'), ('Мышь');
-- названия, начинающиеся на «К»
SELECT name FROM products WHERE name LIKE 'К%';
Вывод:
Клавиатура Коврик
Шаблон '%тор%' найдёт «Монитор» (подстрока в середине), а 'М___' — слова из четырёх символов на «М», например «Мышь».
Итог
WHEREоставляет строки, для которых условие истинно; условия объединяютAND/OR.BETWEENзадаёт диапазон включительно,IN— список допустимых значений.LIKEищет по шаблону:%— любое число символов,_— один символ.
Проверьте себя
1. Что проверяет условие price BETWEEN 1000 AND 6000?
Aprice > 1000 и price < 6000 (без границ)
Bprice >= 1000 и price <= 6000 (включая границы)
Cтолько price = 1000 или price = 6000
Dprice вне диапазона
2. Чем можно заменить условие category = 'A' OR category = 'B' OR category = 'C'?
Acategory LIKE 'ABC'
Bcategory IN ('A', 'B', 'C')
Ccategory BETWEEN 'A' AND 'C'
Dcategory = ('A','B','C')
3. Что означает символ % в шаблоне LIKE?
AРовно один любой символ
BЛюбое число любых символов (в т.ч. ноль)
CТолько цифры
DКонец строки