Odabir podataka unutar raspona u SQL

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:

Tablica proizvoda
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:

SELECT ProductName, UnitPrice FROM proizvodi WHERE UnitPrice> 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.00

Takođ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ške

Izraž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.00

To rezultira rezultatom prikazanim u nastavku:

ProductName UnitPrice ------- -------- Chai 18.00 Promjena 19.00

Izraž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.00

Kao 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čin

Klauzula 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.