Модуль 02 · урок 8
Дужки і пріоритет умов
Завдання: «електроніка або одяг, але лише дешевша за $100». Без дужок запит несподівано повертає дорогі «Galaxy» й «ProBook». Чому?
Пріоритет: AND сильніший за OR
Коли в умові є і AND, і OR, СКБД спершу обчислює AND, а вже потім OR (AND має вищий пріоритет). Це часто не те, що ми маємо на увазі:
-- НЕ те, що очікуєш:
WHERE category = 'Home' OR category = 'Books' AND price < 50
читається як Home OR (Books AND price < 50) — тобто весь Home проходить незалежно від ціни (навіть Espresso за $129).
Дужки задають порядок
Дужки роблять намір явним:
WHERE (category = 'Home' OR category = 'Books') AND price < 50
Тепер умова ціни діє на обидві категорії.
Правило: змішуєш AND і OR — став дужки, навіть якщо здається, що й так зрозуміло.
Твоя черга
Потрібні товари з «Electronics» або «Clothing», і при цьому дешевші за $100. Виведи name, category, price. Не забудь дужки!
Підсумок
ANDобчислюється раніше заOR.- Дужки роблять намір явним і захищають від помилок.