Теория· 5 мин· 10 XP
WHERE с текстом — фильтруем по категории
Зачем это нужно
Часто нужно отобрать строки по текстовому атрибуту: только «Электроника», только заказы со статусом «доставлено», только клиенты из «Москвы».
Текст в WHERE — в одинарных кавычках
sql
-- ПРАВИЛЬНО: текст в одинарных кавычках
SELECT name FROM products WHERE category = 'Книги';
SELECT name FROM products WHERE category != 'Прочее';
Одинарные кавычки '...' — стандарт SQL для строковых значений.
Двойные кавычки "..." в PostgreSQL используются для имён колонок и псевдонимов.
Практические примеры
sql
-- Только электроника
SELECT name, price, stock
FROM products
WHERE category = 'Электроника'
ORDER BY price DESC;
-- Всё кроме «Прочего»
SELECT name, category
FROM products
WHERE category != 'Прочее'
ORDER BY category, name;
Регистр имеет значение
PostgreSQL чувствителен к регистру при сравнении через =:
sql
WHERE category = 'Книги' -- найдёт «Книги» ✓
WHERE category = 'книги' -- НЕ найдёт ничего ✗
Чтобы посмотреть реальные значения: SELECT DISTINCT category FROM products;.
Частые ошибки
Двойные кавычки для значения — WHERE category = "Книги" — ошибка.
PostgreSQL воспримет "Книги" как имя колонки.
Забыли кавычки — WHERE category = Книги — ошибка синтаксиса.
Запомни
Текстовые значения в WHERE — в одинарных кавычках. Регистр важен.
Микро-практика
Найдите ошибки:
WHERE category = "Одежда"WHERE name = iPhoneWHERE category = 'спорт'(в базе хранится «Спорт»)
Ответы
- Двойные кавычки — ошибка. Правильно:
WHERE category = 'Одежда' - Нет кавычек — ошибка. Правильно:
WHERE name = 'iPhone' - Регистр не совпадает — ничего не найдёт. Правильно:
WHERE category = 'Спорт'
Прочитайте урок до конца — прогресс засчитается автоматически