Predstavljamo WHERE klauzulu i STUPANJ uvjet
Strukturirani upitnik (SQL) pruža korisnicima baze podataka mogućnost stvaranja prilagođenih upita za izdvajanje podataka iz baza podataka. U ranijem članku istražili smo prikupljanje podataka iz baze podataka pomoću SQL SELECT upita . Proširimo tu raspravu i istražimo kako možete izvršiti napredne upite za preuzimanje podataka koji odgovaraju određenim uvjetima.
Pogledajmo primjer koji se temelji na najčešće korištenoj bazi podataka Northwind, koja se često šalje s proizvodima baze podataka kao vodič.
Slijedi izvatak iz tablice proizvoda iz baze podataka:
Identifikacijski broj proizvoda | Ime proizvoda | SupplierID | QuantityPerUnit | Jedinična cijena | UnitsInStock |
---|---|---|---|---|---|
1 | chai | 1 | 10 kutija x 20 vrećica | 18.00 | 39 |
2 | Chang | 1 | Boce 24 - 12 oz | 19.00 | 17 |
3 | Anisirani sirup | 1 | Boce od 12 do 550 ml | 10.00 | 13 |
4 | Osvježenje Chef Anton's Cajun | 2 | Posude od 48 - 6 oz | 22.00 | 53 |
5 | Kuhar Anton's Gumbo Mix | 2 | 36 kutija | 21.35 | 0 |
6 | Baka's Dječji šećer | 3 | 12 - 8 oz staklenke | 25.00 | 120 |
7 | Oče Bobove organske sušene kruške | 3 | 12 - 1 kg pkgs. | 30.00 | 15 |
Jednostavni granični uvjeti
Prva ograničenja koja ćemo postaviti na naš upit uključuju jednostavne granične uvjete. Navedemo ih u WHERE klauzuli SELECT upit, koristeći jednostavne izjave o stanju uvjetovane standardnim operatorima, kao što su <,>,> = i <=.
Prvo pokušajmo jednostavan upit koji nam omogućuje izdvajanje popisa svih proizvoda u bazi podataka koji imaju UnitPrice veću od 20.00:
Ovo proizvodi popis od četiri proizvoda, kako je prikazano u nastavku:
ProductName UnitPrice ------- -------- Chef Anton's Gumbo Mix 21.35 Chef Anton's Cajun začinjavanje 22.00 Baba's Dječji masti Spread 25.00 Uncle Bob's organske sušene kruške 30.00Također možemo koristiti WHERE klauzulu s nizom vrijednosti. Na primjer, možemo prikazati sve proizvode s imenima koja počinju s U, V, W, X, Y ili Z sa sljedećim uputama:
SELECT ProductName FROM products WHERE ProductName> = 'T'Što rezultira rezultatom:
ProductName ------- Ujak Bobove organske suhe kruškeIzražavanje područja pomoću granica
Klauzula WHERE također nam omogućuje primjenu uvjeta raspona na vrijednosti upotrebom višestrukih uvjeta. Na primjer, ako bismo htjeli preuzeti naš upit i ograničiti rezultate proizvoda s cijenama od 15.00 do 20.00 sati, mogli bismo upotrijebiti sljedeći upit:
SELECT ProductName, UnitPrice FROM proizvodi GDJE JedinicaPrice> 15.00 I UnitPrice <20.00To rezultira rezultatom prikazanim u nastavku:
ProductName UnitPrice ------- -------- Chai 18.00 Promjena 19.00Izražavanje raspona s MEĐU
SQL također pruža prečac IZMEĐU sintakse koja smanjuje broj uvjeta koje moramo uključiti i čini upit čistijim. Na primjer, umjesto korištenja dva gore navedena uvjeta, mogli bismo izraziti isti upit kao:
SELECT ProductName, UnitPrice FROM products WHERE UnitPrice između 15.00 i 20.00Kao i kod ostalih klauzula o stanju, BITWEEN također radi s nizom vrijednosti. Ako bismo željeli proizvesti popis svih zemalja s V, W ili X, možemo upotrijebiti upit:
SELECT ProductName FROM products WHERE Naziv proizvoda između "A" i "D"Što rezultira rezultatom:
ProductName ------- Anisirani sirup Chai Chang Chef Anton's Gumbo Mix Chef Anton's Cajun začinKlauzula WHERE je moćan dio SQL jezika koji vam omogućuje ograničavanje rezultata na vrijednosti unutar određenih raspona. Vrlo se često koristi za pomoć u izražavanju poslovne logike i mora biti dio svakog stručnjaka za baze podataka.
Često je korisno ugraditi uobičajene klauzule u pohranjenu proceduru kako bi bila dostupna onima bez SQL znanja.