Andmebaasid on tänapäevaste rakenduste oluline ehitusplokk. Andmebaasid salvestavad aga tohutul hulgal andmeid. Seetõttu vajame võimalusi andmete välja filtreerimiseks ja ainult vajalike kirjete toomiseks.
Üks SQL-i levinumaid andmete filtreerimise meetodeid on WHERE-klausli kasutamine. WHERE-klausel SQL-is võimaldab meil kirjeid teatud tingimuse alusel filtreerida. See klausel võib määrata ühe või mitu tingimust, mis võimaldab meil filtreerida SELECT-lause tagastatud kirjeid.
See õpetus uurib, kuidas töötada WHERE-klausliga ja määrata mitu tingimust ühes klauslis, mis võimaldab paremini kontrollitud ja detailsemat andmete filtreerimist.
SQL WHERE klausli põhitõed
Alustame põhitõdedest ja õpime SQL-i WHERE-klausliga töötamise põhialuseid.
Oletame, et meil on tabel, mis sisaldab riigiteavet, ja toome ainult riigid, mille rahvaarv (ruutkilomeetri kohta) on suurem kui 100 ja pindala on suurem kui 2000000.
Saame päringu käivitada järgmiselt:
VALI * FROM sample_db.country_informationKUS piirkond > 2 000 000 JA elanikkond_km_ruutmeetri kohta > 100 ;
Eelmises näites kasutame kahe tingimuse määramiseks WHERE-klauslit ja operaatorit AND. Operaatori AND kasutamine ütleb SQL-ile, et kirje kaasamiseks tulemuskomplekti PEAVAD olema täidetud mõlemad tingimused.
See peaks tagastama ainult riigid, mis vastavad järgmistele määratud kriteeriumidele:
Vaatame teisi operaatoreid, et määrata WHERE-klauslis mitu tingimust.
SQL VÕI operaator
Operaator OR võimaldab meil WHERE-klauslis määrata mitu tingimust. Siiski, erinevalt JA-operaatorist, mis nõuab kõigi tingimuste täitmist, nõuab operaator VÕI, et vähemalt üks tingimus oleks täidetud.
Näiteks riikide valimiseks, mille pindala on suurem kui 2000000 või rahvaarv (ruutkilomeetri kohta) on suurem kui 100, saame käivitada järgmise päringu:
VALI * FROM sample_db.country_informationKUS piirkond > 2 000 000 VÕI elanikkond_km_ruutmeetri kohta > 100 ;
Sel juhul peaks päring tagastama järgmised tulemused:
SQL IN operaator
Samuti saame kasutada operaatorit IN veeru mitme väärtuse määramiseks. Näiteks riikide valimiseks, mille nimi sisaldab stringe 'Ameerika Ühendriigid' ja 'Venemaa', saame päringu käivitada järgmiselt.
VALI * FROM sample_db.country_informationKUS riik ( 'Ühendriigid' , 'Venemaa' ) ;
Tulemus:
SQL EI OLE operaator
Operaator NOT võimaldab meil antud tingimuse eitada.
Näiteks valige riigid, millel pole määratud pindala ja mis on populaarsed ruutkilomeetri kohta:
VALI * FROM sample_db.country_informationKUS POLE ala > 2 000 000 JA elanikkond_km_ruutmeetri kohta > 100 ;
Tulemus:
SQL mitu operaatorit
Samuti saame kombineerida mitut operaatorit keerukamate tingimuste täpsustamiseks.
VALI * FROM sample_db.country_informationKUS ( country_information.area > 2 000 000 JA elanikkond_km_ruutmeetri kohta > 100 ) VÕI riik = 'Hiina' ;
Väljund:
Selles näites kasutame kahe esimese tingimuse rühmitamiseks sulgusid, nii et neid hinnatakse enne kolmanda tingimusega võrdlemist ühe tingimusena.
Järeldus
Õppisime, kuidas kasutada WHERE-klauslit SQL-is mitme tingimuse määramiseks. Lisaks käsitlesime operaatoreid AND, OR, IN ja NOT ning avastasime, kuidas neid keerukamate tingimuste loomiseks kombineerida.