SQL-i vahemike andmete valimine

WHERE-klauslit ja tingimust BETWEEN tutvustades

Struktureeritud päringukeel (SQL) pakub andmebaasi kasutajatele võimalust luua kohandatud päringuid andmebaaside kohta teabe hankimiseks. Varasemas artiklis me uurisime SQL SELECT päringut kasutades andmebaasi andmeid . Lähme selle arutelu juurde ja uurime, kuidas täiustada täpsemaid päringuid konkreetsete tingimustega sobivate andmete hankimiseks.

Vaatame näitena, mis põhineb sagedamini kasutataval Northwind'i andmebaasil, mis sageli kaasab andmebaasi tooteid juhendina.

Siin on väljavõte andmebaasi Toote tabelis:

Toote tabel
ProductID Tootenimi TarnijaID KogusPerUnit Ühikuhind UnitsInStock
1 Chai 1 10 kasti x 20 koti 18.00 39
2 Chang 1 24-12 oz-pudelit 19.00 17
3 Aniisav siirup 1 12 - 550 ml pudelit 10.00 13
4 Chef Antoni Cajuni maitsestamine 2 48 - 6 untsi purgid 22.00 53
5 Chef Antoni Gumbo Mix 2 36 kasti 21,35 0
6 Vanaisa Boysenberry Spread 3 12 - 8 untsi purgid 25.00 120
7 Onu Bobi orgaanilised kuivatatud pirid 3 12-1 lb pkgs. 30.00 15

Lihtsad piirtingimused

Esimesed piirangud, mis meie päringule asetavad, sisaldavad lihtsaid piirtingimusi. Me saame neid täpsustada SELECT-i päringu WHERE klauslites, kasutades standardsete operaatoritega konstrueeritud lihtsaid tingimusarve, näiteks <,>,> = ja <=.


Esiteks proovige lihtsat päringut, mis võimaldab meil kogu andmebaasi kuuluvate toodete nimekirja välja võtta, mille ühikuhind on pikem kui 20.00:

SELECT ProductName, UnitPrice FROM toodetest WHERE UnitPrice> 20.00

See loob neli toodet, nagu on näidatud allpool:

ProductName UnitPrice ------- -------- Chef Antoni Gumbo Mix 21.35 Chef Antoni Cajun maitsestamine 22.00 Vanaisa Boysenberry Spread 25.00 Uncle Bobi orgaaniliste kuivatatud pirnid 30,00

Samuti võime WHERE-i klauslit kasutada stringväärtustega. See põhimõtteliselt võrdleb tähemärke numbritega, kus A tähistab väärtust 1 ja Z väärtus 26. Näiteks võime näidata kõiki tooteid nimedega, mis algavad U, V, W, X, Y või Z järgmise päringuga:

SELECT ProductName FROM toodetest, kus ProductName> = 'T'

Mis annab tulemuse:

ProductName ------- Onu Bobi orgaanilised kuivatatud pirid

Piiride muutmine piiride abil

WHERE-klausel võimaldab meil rakendada väärtuste vahemikku, kasutades mitut tingimust. Näiteks kui me sooviksime oma ülaltoodud päringut teha ja hinnad piirata hindadega, mille hinnad on kella 15.00-20.00, võiksime kasutada järgmist päringut:

SELECT ProductName, UnitPrice FROM toodetest, kus UnitPrice> 15,00 ja UnitPrice <20,00

See annab allpool toodud tulemuse:

ProductName UnitPrice ------- -------- Chai 18.00 Chang 19.00

Väljastab vahemikku BETWEEN

SQL pakub ka süntaksi vahelist kiirklahvi, mis vähendab tingimuste hulka, mida me peame lisama ja muudab päringu loetavamaks. Näiteks võiksime selle asemel, et kasutada kahte eespool toodud WHERE tingimust, võiksime väljendada sama päringu, mis:

SELECT ProductName, UnitPrice FROM Toodete WHERE UnitPrice BETWEEN 15.00 ja 20.00

Nagu meie teiste tingimuste kohta, töötab BETWEEN ka stringväärtustega. Kui me tahame koostada nimekirja kõikidest riikidest, mis algavad V, W või X-ga, võiksime päringu kasutada:

SELECT ProductName FROM toodetest, kus tootenimi on "A" ja "D"

Mis annab tulemuse:

Tootenimetus ------- Aniisisiirup Chai Chang Chef Antoni Gumbo Mix Chef Antoni Cajuni maitsestamine

WHERE-klausel on võimas SQL-keele osa, mis võimaldab piirata tulemusi teatud vahemikes jäävate väärtustega. Seda kasutatakse sageli äriloogika väljatöötamiseks ja see peaks olema iga andmebaasi professionaalse tööriistakomplekti osa.

Sageli on kasulik lisada ühised klauslid salvestatud protseduurile, et muuta see kättesaadavaks neile, kellel pole SQL-i teadmisi.