Filtrarea datelor
Operatorul WHERE
Adesea, este necesar să extragem nu toate datele din baza de date, ci doar cele care îndeplinesc o anumită condiție. Pentru filtrarea datelor în comanda SELECT, se utilizează operatorul WHERE, după care se specifică condiția:
WHERE conditie
Dacă condiția este adevărată, atunci rândul va fi inclus în rezultatul selectării. Pot fi folosite operații de comparație pentru a compara două expresii:
- = : egalitate
- != : inegalitate
- <> : inegalitate
- < : mai mic decât
- > : mai mare decât
- <= : mai mic sau egal
- >= : mai mare sau egal
De exemplu, vom selecta toate produsele ale căror producător este compania Samsung:
SELECT * FROM Products
WHERE Manufacturer = 'Samsung';

Este important de menționat că pentru MySQL nu contează sensibilitatea la majuscule și minuscule, iar, de exemplu, șirul "Samsung" va fi echivalent cu șirul "SAMSUNG" sau "samSunG".
Un alt exemplu - vom găsi toate produsele al căror număr este mai mic de 3:
SELECT * FROM Products
WHERE ProductCount < 3;
Criteriul de filtrare poate reprezenta și o expresie complexă compusă. De exemplu, vom găsi toate produsele ale căror valoare totală este mai mare de 100 000:
SELECT * FROM Products
WHERE Price * ProductCount > 100000;

Operatorii logici
Operatorii logici permit combinarea mai multor condiții. În MySQL, puteți utiliza următorii operatori logici:
- AND: operația logică ȘI. Aceasta combină două expresii:
expresia1 AND expresia2
Doar dacă ambele expresii sunt simultan adevărate, atunci și condiția generală a operatorului AND va fi adevărată. Cu alte cuvinte, dacă atât prima condiție cât și a doua sunt adevărate.
- OR: operația logică SAU. De asemenea, ea combină două expresii:
expresia1 OR expresia2
Dacă cel puțin una dintre expresii este adevărată, atunci condiția generală a operatorului OR va fi, de asemenea, adevărată. Cu alte cuvinte, dacă fie prima condiție este adevărată, fie a doua.
- NOT: operația de negare logică. Dacă expresia în această operație este falsă, atunci condiția generală este adevărată
NOT expresia
De exemplu, vom selecta toate produsele ale căror producător este Samsung și, în același timp, prețul este mai mare de 50000:
SELECT * FROM Products
WHERE Manufacturer = 'Samsung' AND Price > 50000

Acum vom schimba operatorul cu OR. Cu alte cuvinte, vom selecta toate produsele ale căror producător este Samsung sau prețul este mai mare de 50000:
SELECT * FROM Products
WHERE Manufacturer = 'Samsung' OR Price > 50000

Aplicarea operatorului NOT - vom selecta toate produsele ale căror producător nu este Samsung:
SELECT * FROM Products
WHERE NOT Manufacturer = 'Samsung';

Prioritatea operațiilor
Într-o singură condiție, la nevoie, putem combina mai multe operații logice. Cu toate acestea, trebuie să ținem cont că operația NOT este cea mai prioritară, care se execută în primul rând, urmată de AND și operația cu cea mai mică prioritate - OR. De exemplu:
SELECT * FROM Products
WHERE Manufacturer ='Samsung' OR NOT Price > 30000 AND ProductCount > 2;
În acest caz, mai întâi se evaluează expresia NOT Price > 30000, adică prețul trebuie să fie mai mic sau egal cu 30000.
Apoi se evaluează expresia NOT Price > 30000 AND ProductCount > 2, adică prețul trebuie să fie mai mic sau egal cu 30000 și, în același timp, numărul de produse trebuie să fie mai mare de 2.
În final, se evaluează operatorul OR - fie prețul trebuie să fie mai mic sau egal cu 30000 și, în același timp, numărul de produse să fie mai mare de 2, fie producătorul trebuie să fie Samsung.

Cu ajutorul parantezelor, puteți redefini prioritățile operațiilor:
SELECT * FROM Products
WHERE Manufacturer ='Samsung' OR NOT (Price > 30000 AND ProductCount > 2);
În acest caz, vom găsi produsele ale căror producător este fie Samsung, fie, în același timp, prețul produsului este mai mic sau egal cu 30000 și numărul de produse este mai mic de 3.
