Странице сајта
Prvi razred
Drugi razred
Учесници
Увод
Материјал за самостални рад док смо на паузи
SQL упити
Табеле
Форме
Упити
Извјештаји
Treći razred
Četvrti razred
Opšti predmeti
Brodomašinski tehničar
Nautički tehničar
Матура
Преквалификација
Употреба WHERE за услове
WHERE сегмент упита се користи не само у SELECT већ и у другим упитима попут DELETE и UPDATE.
Генерално налази се након главног дијела упита:
| SELECT <kolone> FROM <tabela> WHERE <uslovi> |
DELETE FROM <tabela> WHERE <uslovi> |
UPDATE <tabela> SET <šta se mjenja> WHERE <uslovi> |
У којем год упиту да се WHERE налазио он само може да поставља услове на колоне табела које су наведене у упиту.
Облик услова
Сами услови готово увјек морају бити типа:
VRIJEDNOST/KOLONA OPERACIJA_POREĐENJA VRIJEDNOST/KOLONA
тако да може:
Price >5
ProductID=7
CustomerName="ABC"
"ABC"=CustomerName
City=Address
итд.
Оно што не може или неће дати резултате какве желите су услови гдје само наведете вриједност, или само наведете колону или наведете једно и друго али не наведете операцију поређења.
Операције поређења
| Операција | Примјер |
| Веће од | A > B |
| Мање од | A < B |
| Веће или једнако | А >= B |
| Мање или једнако | A <= B |
| Једнако | A = B |
| Није једнако | A <> B A != B |
| Текст је сличан | A LIKE "ABC%" |
Већина ових је очигледна, али последњи захтјева објашњење. Овај последњи примјер поставља услов да је у колони A текст који ПОЧИЊЕ са ABC. Овдје % игра улогу ЏОКЕРА који може да замјени ниједно до више слова на том мјесту. У функцији % у SQL је идентичан * у Аксесу.
Свака од овијк операција има РЕЗУЛТАТ. Ако је тврђење тачно, онда је резултат ТАЧНО или TRUE а ако није онда је резултат НЕТАЧНО или FALSE. Са овим вриједностима се даље може логичка математика радити. Веома често се таква математика зове Булова логика.
Операције са ТАЧНО/НЕТАЧНО
Има више операција које могу да раде са TRUE и FALSE али овдје ћемо навести само три.
| Операција | Примјер | Објашњење |
| И | A AND B | Обије вриједности са једне и са друге стране AND морају бити тачне да би резултат био тачан. |
| ИЛИ | A OR B | Довољно је да је или А или Б тачно да би резултат био тачан. |
| Негација | NOT A | Aко је A тачно, резултат је нетачан. Ако је A нетачно, резултат је тачан. Примјер: NOT (A=B) - ово даје тачно само ако A и B НИЈЕ тачно. |
Више ових операција може бити нанизано:
A AND B AND C OR D
у којем случају резултат се рачунао као у математици када се ради сабирање па се ради са лијева на десно.
TRUE AND FALSE AND TRUE OR TRUE =
FALSE AND TRUE OR TRUE =
FALSE OR TRUE =
TRUE
Изузетак тог правила је NOT, које као множење се прво примјењује.
NOT 5>6 OR NOT 1=1 =
NOT FALSE OR NOT TRUE =
TRUE OR FALSE =
TRUE
Наравно ако се икада двоумите око редослиједа операција увјек се заграде могу користити да би били сигурни да ће се операције извршити редослиједом који вама одговара;
(NOT A>B) AND (C>50 OR C<10)
Примјери:
Биће наведен само WHERE дио израза овдје као рјешење. Подразумјева се да је ово WHERE дио неког већег израза. НЕ МОЖЕ WHERE САМО ДА СТОЈИ.
Услов 1: Quantity треба да буде веће од 15
WHERE Quantity > 15
Услов 2: ProductID треба да буде различит од 7.
WHERE ProductID != 7
Услов 3: Име купца треба да се завршава на o.
WHERE CustomerName LIKE "%o"
Услов 4: Price мора бити између 10 и 15
WHERE Price > 10 AND Price < 15
Услов 5: Price мора или бити мање од 10 или већа од 70.
WHERE Price > 10 OR Price >70
Услов 5: CategoryID може само бити 55 и 66
WHERE CategoryID=55 OR CategoryID=66
Услов 6: Quanity мора бити веће од 100 или Price мора бити мање од 10 или категорија мора бити 15.
WHERE Quantity > 100 OR CategoryID = 15 OR Price < 10
Услов 7: Држава мора бити Њемачка али град не смије бити Хамбург и Бон.
WHERE Country = "Germany" AND NOT (City = "Hamburg" OR City="Bonn")
или
WHERE Country = "Germany" AND (City <> "Hamburg" AND City<>"Bonn")