Izbiranje podatkov znotraj razponov v SQL

Predstavljamo klavzulo WHERE in BETWEEN

Jezik strukturiranih poizvedb (SQL) omogoča uporabnikom baze podatkov možnost, da ustvarijo prilagojene poizvedbe za pridobivanje podatkov iz podatkovnih baz. V prejšnjem članku smo raziskovali pridobivanje podatkov iz baze podatkov z uporabo SQL SELECT poizvedb . Razširimo se na to razpravo in preučimo, kako lahko izvedete napredne poizvedbe za pridobivanje podatkov, ki ustrezajo določenim pogojem.

Poglejmo si primer, ki temelji na pogosto uporabljeni bazi podatkov Northwind, ki pogosto pošilja izdelke z bazami podatkov kot vaje.

Tukaj je odlomek iz tabele izdelkov izdelka baze podatkov:

Tabela izdelkov
ProductID Ime izdelka Dobavitelj QuantityPerUnit Cena na enoto EnoteInStock
1 Chai 1 10 škatel x 20 vrečk 18.00 39
2 Chang 1 24 - 12 oz steklenice 19.00 17
3 Jajčni sirup 1 12 - 550 ml steklenice 10.00 13
4 Chef Anton's Cajun Začimbe 2 48 - 6 oz. Kozarci 22.00 53
5 Chef Anton's Gumbo Mix 2 36 škatel 21.35 0
6 Grandma's Boysenberry Spread 3 12 - 8 oz. Kozarci 25.00 120
7 Organsko suhih hrušk strica Boba 3 12 - 1 lb pkgs. 30.00 15

Enostavni mejni pogoji

Prve omejitve, ki jih bomo postavili na našo poizvedbo, vključujejo preproste robne pogoje. Te jih lahko določimo v klavzuli WHERE za poizvedbo SELECT z uporabo enostavnih stavkov stanja, izdelanih s standardnimi operaterji, kot so <,>,> =, in <=.


Prvič, preizkusimo preprosto poizvedbo, ki nam omogoča, da izberemo seznam vseh izdelkov v bazi podatkov, ki imajo UnitPrice več kot 20,00:

SELECT ProductName, UnitPrice FROM izdelkov KJE EnaPrice> 20,00

S tem izdelamo seznam štirih izdelkov, kot je prikazano spodaj:

ProductName UnitPrice ------- -------- Chef Antonova gumba mešanica 21.35 Chef Anton's Cajun Začimbe 22.00 Grandma's Boysenberry Spread 25.00 Organsko posušeno kruh strica Bob 30.00

Uporabo klavzule WHERE lahko uporabimo tudi z vrednostmi nizov. To v bistvu izenačuje znake s številkami, pri čemer A predstavlja vrednost 1 in Z predstavlja vrednost 26. Na primer, lahko prikaže vse izdelke z imeni, ki se začnejo z U, V, W, X, Y ali Z z naslednjo poizvedbo:

SELECT ProductName IZ izdelkov WHERE ProductName> = 'T'

Kateri rezultat je rezultat:

Ime izdelka ------- Organsko posušene hruške strica Bob

Izražanje razdalj z uporabo meja

Klavzula WHERE omogoča tudi uporabo pogoja razdalje na vrednosti z uporabo več pogojev. Če bi na primer želeli vzeti zgornjo poizvedbo in omejiti rezultate na izdelke s cenami med 15.00 in 20.00, bi lahko uporabili naslednjo poizvedbo:

SELECT ProductName, UnitPrice FROM izdelki WHERE UnitPrice> 15.00 IN UnitPrice <20.00

To daje rezultat, prikazan spodaj:

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

Izražanje razdalj z BETWEEN

SQL ponuja tudi bližnjico BETWEEN sintakso, ki zmanjšuje število pogojev, ki jih moramo vključiti, in naredi poizvedbo bolj berljivo. Na primer, namesto dveh zgoraj navedenih pogojev WHERE lahko izrazimo isto poizvedbo kot:

SELECT ProductName, UnitPrice FROM izdelki KJE Enotna cena med 15.00 in 20.00

Kot pri drugih klavzulah o pogojih, BETWEEN deluje tudi z nizi vrednosti. Če želimo izdelati seznam vseh držav, ki se začnejo z V, W ali X, bi lahko uporabili poizvedbo:

SELECT ProductName IZ izdelkov WHERE ProductName MED "A" in "D"

Kateri rezultat je rezultat:

ProductName ------- Aniseed sirup Chai Chang Chef Anton's Gumbo Mix kuhar Anton's Cajun Začimbe

Klavzula WHERE je močan del jezika SQL, ki vam omogoča, da omejite rezultate na vrednosti, ki spadajo v določene razpone. Zelo se pogosto uporablja za pomoč pri izražanju poslovne logike in mora biti del vsakega strokovnega orodja za zbirke podatkov.

Pogosto je koristno vključiti splošne klavzule v shranjen postopek, da bi bil dostopen tistim brez znanja SQL.