SQL - AND & OR Operatori


Odabir zapisa na osnovu stanja

U prethodnom lekcijiu naučili smo kako dohvatiti zapise iz tabele koristeći jedan uslov sa WHERE klauzulom. Ali ponekad je potrebno filtrirati zapise na temelju više uslova poput odabira korisnika čija je dob veća od 30, a država je Sjedinjene Države, odabira proizvoda čija je cijena niža od 100 dolara, a ocjene veće od 4, itd.



AND Operator

Operator AND je logički operator koji kombinuje dva uslova i vraća TRUE samo ako oba uslova procjenjuju na TRUE. Operator AND se često koristi u rečenici WHERE za SELECT, UPDATE, DELETE izjavu za formiranje uslova za filtriranje skupa rezultata.

SELECT column1_name, column2_name, columnN_name
FROM table_name
WHERE condition1 AND condition2;

Provjerimo nekoliko primjera koji pokazuju kako to zapravo djeluje. Pretpostavimo da u našoj bazi imamo tabelu pod nazivom employees sa sljedećim zapisima:




Korištenje WHERE klauzule s operatorom AND

Sljedeća SQL izjava vratiće samo one zaposlene iz tabele employees čija je plata veća od 7000, a dept_id je jednak 5.

SELECT * FROM employees
WHERE salary > 7000 AND dept_id = 5;

Nakon izvršenja, dobićete ovakav izlaz:




OR Operator

Slično tome, OR operater je takođe logički operator koji kombinuje dva uslova, ali vraća TRUE kad je bilo koji od uslov TRUE. Sljedeća SQL izjava vratit će sve zaposlene iz tabele employees čija je plata ili veća od 7000 ili je dept_id jednak 5.

SELECT * FROM employees
WHERE salary > 7000 OR dept_id = 5;

Ovog puta dobićete ovakav izlaz:




Kombinacija AND & OR operatora

Možete i kombinovati AND & OR operatore za stvaranje složenih uslova izraza. Sljedeća SQL izjava vratiće sve zaposlene čija je plata veća od 5000, a dept_id je jednak 1 ili 5.

SELECT * FROM employees
WHERE salary > 5000 AND (dept_id = 1 OR dept_id = 5);

Nakon izvršenja gornjeg upita, dobićete ovakav izlaz: