Запропонувати правкуПокращити цю статтюДопрацюйте відповідь до «Як працювати з пріоритетом логічних операторів?». Ваші зміни проходять модерацію перед публікацією.Потрібне підтвердженняКонтентЩо ви змінюєте🇺🇸EN🇺🇦UAПереглядЗаголовок (UA)Коротка відповідь (UA)Пріоритет логічних операторів (`NOT`, `AND`, `OR`) визначає, у якому порядку SQL перевірятиме умови у фільтрі `WHERE`: стандартний порядок - `NOT` виконується першим, `AND` другим, `OR` останнім; якщо порядок не задати явно, SQL виконає їх за своїми правилами, а не за твоєю логікою. **Ключове:** щоб SQL виконував умови в потрібному порядку, використовують дужки, наприклад `WHERE NOT (city = 'Kyiv' AND department = 'IT')` - у складних фільтрах дужки варто використовувати завжди, це робить код читабельним і передбачуваним.Показується над повною відповіддю для швидкого нагадування.Відповідь (UA)ЗображенняПріоритет логічних операторів (`NOT`, `AND`, `OR`) визначає, **у якому порядку** SQL перевірятиме умови у фільтрі `WHERE`. Якщо порядок не задати явно - SQL виконає їх **за своїми правилами**, а не за твоєю логікою. ### Стандартний порядок пріоритетів 1. `NOT` - виконується першим; 2. `AND` - виконується другим; 3. `OR` - виконується останнім. ### Приклад без дужок ```sql SELECT * FROM employees WHERE NOT city = 'Kyiv' AND department = 'IT' OR salary > 80000; ``` SQL виконає так: 1. Спершу застосує `NOT city = 'Kyiv'`; 2. Потім перевірить `AND department = 'IT'`; 3. І лише потім `OR salary > 80000`. Тобто обере **всіх IT-шників не з Києва** **чи** всіх, у кого зарплата більша за 80 000 - навіть якщо вони з Києва й не з IT. ### Як змінити пріоритет Щоб SQL виконував умови в потрібному порядку, використовують **дужки**: ```sql WHERE NOT (city = 'Kyiv' AND department = 'IT') ``` Тепер `NOT` застосовується до всього виразу всередині дужок. Ще приклад: ```sql WHERE (city = 'Kyiv' OR city = 'Lviv') AND salary > 70000; ``` Спершу перевіряться міста, потім фільтр за зарплатою. ### Коротко: | Оператор | Пріоритет | Приклад використання | |---|---|---| | `NOT` | 1 | `NOT city = 'Kyiv'` | | `AND` | 2 | `age > 18 AND city = 'Kyiv'` | | `OR` | 3 | `city = 'Kyiv' OR city = 'Lviv'` | **Підсумок:** - SQL завжди йде за пріоритетом: `NOT` → `AND` → `OR`. - Щоб задати свій порядок, **став дужки**. - Краще завжди використовувати дужки у складних фільтрах - це робить код читабельним і передбачуваним.Для рев’юераПримітка для модератора (необов’язково)Бачить лише модератор. Прискорює рев’ю.