Булеві оператори

 

Основні Булеві оператори також розпізнаються в MYSQL. Вирази Буля - є або вірними або невірними, подібно до предикатів. Булеві оператори зв'язують одне або більш правдивих/неправдивих значень і повертають єдине вірне або невірне значення. Стандартними операторами Буля розпізнаваними в SQL є: and,or і NOT.

Припустимо ви хочете отримати всіх замовників в Далласі, які мають рейтинг вище 200:

 

SELECT * FROM Customers WHERE city = 'Dallas' AND rating > 200;

 

При використанні оператора And, повинні бути виконані обидві умови, тобто повинні бути вибрані всі замовники з Далласа, рейтинг яких більше 200.

При використанні оператора Or, повинне виконуватися одна з умов. Наприклад:

 

SELECT * FROM Customers WHERE city = 'Dallas ' OR rating > 200;

 

В даному випадку будуть вибрані всі замовники з Далласа і ті що мають рейтинг більше 200, навіть якщо вони і не з Далласа.

NOT може використовуватися для інвертування значень Буля. Приклад запиту з NOT:

 

SELECT * FROM Customers WHERE city = 'Dallas' OR NOT rating > 200;

 

При такому запиті будуть вибрані всі замовники з Далласа і всі замовники, рейтинг яких менше 200. В цьому запиті оператор NOT застосовується тільки до виразу rating >200. Можна зробити складніший запит:

 

SELECT * FROM Customers WHERE NOT( city = 'Dallas' OR rating > 200 );

 

У цьому запиті NOT застосований до обох виразів в дужках. В даному випадку, сервер зчитує вирази в дужках, визначає, чи відповідає істині рівність city = 'Dallas' або рівність rating > 200. Якщо будь-яка умова вірна, вираз Буля всередині дужок теж вірний. Але, якщо вираз Буля усередині дужок вірний, предикат є невірним, тому що NOT перетворить вірність в невірність і навпаки. Тобто, будуть вибрані всі замовники що не знаходяться в Далласі і рейтинг яких менше 200.