The Struktureeritud päringukeel (SQL) annab andmebaasi kasutajatele võimaluse luua kohandatud päringuid andmebaasidest teabe hankimiseks. Varasemas artiklis uurisime andmebaasist teabe väljavõtmist kasutades SQL SELECT päringuid. Laiendame seda arutelu ja uurime, kuidas saaksite edasi areneda päringud andmete hankimiseks vastab konkreetsetele tingimustele.
Vaatleme näidet, mis põhineb tavaliselt kasutataval Põhjatuul andmebaas, mis sageli sisaldab juhendajana andmebaasitooteid.
Siin on väljavõte andmebaasi tootetabelist:
ProductID | Tootenimi | Tarnija ID | QuantityPerUnit | Ühikhind | UnitsInStock |
---|---|---|---|---|---|
1 | Chai | 1 | 10 karpi x 20 kotti | 18.00 | 39 |
2 | Chang | 1 | 24 - 12 oz pudelit | 19.00 | 17 |
3 | Aniisisiirup | 1 | 12 - 550 ml pudelid | 10.00 | 13 |
4 | Peakokk Antoni Cajuni maitsestamine | 2 | 48 - 6 oz purki | 22.00 | 53 |
5 | Peakokk Antoni Gumbo Mix | 2 | 36 kasti | 21.35 | 0 |
6 | Vanaema Boysenberry levik | 3 | 12 - 8 oz purki | 25.00 | 120 |
7 | Onu Bobi orgaanilised kuivatatud pirnid | 3 | 12 - 1 naela tk. | 30.00 | 15 |
Lihtsad piiritingimused
Esimesed piirangud, mille oma päringule seame, hõlmavad lihtsaid piiritingimusi. Saame need täpsustada SELECT päringu WHERE klauslis, kasutades lihtsaid tingimuste lauseid, mis on loodud standardsete operaatoritega, näiteks ,> = ja <=.
Kõigepealt proovime lihtsat päringut, mis võimaldab meil välja tõmmata loetelu kõigist andmebaasi toodetest, mille UnitPrice on üle 20.00:
Valige toote nimi, ühikuhind
FROM toodetest
KUS Ühikuhind> 20.00
Nii saadakse nelja toote loend, nagu allpool näidatud:
ProductName UnitPrice
Peakokk Antoni Gumbo Mix 21.35
Peakokk Antoni Cajuni maitsestamine 22.00
Vanaema Boysenberry levik 25.00
Onu Bobi orgaanilised kuivatatud pirnid 30.00
Võime kasutada ka stringi väärtustega klauslit WHERE. Põhimõtteliselt võrdsustab see tähemärke numbritega, kus A tähistab väärtust 1 ja Z tähistab väärtust 26. Näiteks võiksime näidata kõiki tooteid, mille nimed algavad U, V, W, X, Y või Z järgmise päringuga:
VALI ProductName
FROM toodetest
WHERE ProductName> = 'T'
Mis annab tulemuse:
Tootenimi
Onu Bobi orgaanilised kuivatatud pirnid
Vahemike väljendamine piiride abil
Klausel WHERE võimaldab meil ka mitme tingimuse abil rakendada väärtusele vahemiku tingimust. Näiteks kui soovisime oma ülaltoodud päringu ja piirata tulemusi toodetega, mille hinnad jäävad vahemikku 15.00–20.00, võiksime kasutada järgmist päringut:
Valige toote nimi, ühikuhind
FROM toodetest
KUS Ühikuhind> 15.00 JA Ühikuhind <20.00
See annab allpool näidatud tulemuse:
ProductName UnitPrice
Chai 18.00
Chang 19.00
Vahemike väljendamine VAHEL
SQL pakub ka otsetee süntakside vahel, mis vähendab lisatavate tingimuste arvu ja muudab päringu loetavamaks. Näiteks kahe ülaltoodud WHERE tingimuse asemel võiksime väljendada sama päringut kui:
Valige toote nimi, ühikuhind
FROM toodetest
KUS Ühikuhind 15.00 JA 20.00 VAHEL
Nagu meie teiste tingimuste klauslite puhul, töötab BETWEEN ka stringide väärtustega. Kui soovime koostada loetelu kõigist riikidest, mis algavad tähega V, W või X, võiksime kasutada päringut:
VALI ProductName
FROM toodetest
Kus tootenimi "A" ja "D" VAHEL
Mis annab tulemuse:
Tootenimi
Aniisisiirup
Chai
Chang
Peakokk Antoni Gumbo Mix
Peakokk Antoni Cajuni maitsestamine
Klausel WHERE on võimas osa SQL-keelest, mis võimaldab teil piirata tulemusi väärtustega, mis jäävad määratud vahemikku. Seda kasutatakse väga sageli äriloogika väljendamiseks ja see peaks olema osa iga andmebaasispetsialisti tööriistakomplektist. Sageli on kasulik lisada tavalised klauslid salvestatud protseduuri, et see oleks kättesaadav neile, kellel pole SQL-i teadmisi.