Az SQL tartományon belüli adatok kiválasztása

Bemutatjuk a WHERE záradékot és BETWEEN feltételt

A strukturált lekérdezési nyelv (SQL) lehetővé teszi az adatbázis felhasználók számára, hogy személyre szabott lekérdezéseket hozzanak létre az adatbázisokból származó információk kivonására. Egy korábbi cikkben az SQL SELECT lekérdezésekből származó adatbázisból történő kivonást vizsgáltuk. Bővítsük ezt a beszélgetést, és fedezzük fel, hogyan végezhet speciális lekérdezéseket az adott feltételeknek megfelelő adatok lekéréséhez.

Vegyünk egy példát az általánosan használt Northwind adatbázisra, amely gyakran adatbázis-termékekkel együtt bemutató jellegű.

Itt van egy kivonat az adatbázis terméktáblázatából:

Terméktáblázat
Termék azonosító Termék név SupplierID QuantityPerUnit Egységár UnitsInStock
1 Chai 1 10 doboz x 20 zsák 18.00 39
2 Chang 1 24 - 12 oz-es palackok 19.00 17
3 Ánizs szirup 1 12 - 550 ml-es palackokat 10.00 13
4 Anton's Cajun Fűszeres séf 2 48 - 6 oz tégelyek 22.00 53
5 Chef Anton's Gumbo Mix 2 36 doboz 21.35 0
6 A nagymama's Boysenberry Spread 3 12 - 8 oz tégelyek 25.00 120
7 Bob bácsi szerves száraz körte 3 12 - 1 lb pkgs. 30.00 15

Egyszerű határok

Az első korlátozások, amelyekre a lekérdezésünkre kerül sor, egyszerű határfeltételeket tartalmaznak. Ezeket a SELECT lekérdezés WHERE klauzulájában adhatjuk meg, a szokásos operátorokkal konstruált egyszerű feltételes utasításokkal, például <,>,> = és <=.


Először próbálkozzunk egy egyszerű lekérdezéssel, amely lehetővé teszi számunkra, hogy kiválasszunk egy listát az adatbázisban lévő olyan termékekről, amelyeknek a UnitPrice értéke több, mint 20.00:

SELECT Terméknév, egységáronktól származó termékek WHERE UnitPrice> 20.00

Ez négy termék listáját állítja össze, az alábbiak szerint:

ProductName UnitPrice ------- -------- Chef Anton's Gumbo Mix 21.35 Chef Anton's Cajun Fűszerezés 22.00 Grandma's Boysenberry Spread 25.00 Bob bácsi szerves száraz körte 30.00

A WHERE záradékot string értékekkel is használhatjuk. Ez lényegében egyenértékű a karakterekkel a számokkal, és az A érték az 1. és a Z értéket jelenti, amely a 26. értéket jelöli. Például az U, V, W, X, Y vagy Z-val kezdődő,

VÁLASSZA terméknév FROM termékek WHERE ProductName> = 'T'

Mi eredményezi az eredményt:

Terméknév ------- Bob bácsi szerves szárított körte

A határok határainak kifejezésével

A WHERE záradék lehetővé teszi számunkra, hogy több feltétel használatával egy értéktartományt is meg lehessen valósítani. Ha például fel szeretnénk venni a fenti lekérdezést, és 15:00 és 20:00 óra között korlátozni szeretnénk az eredményeket a termékekre, akkor a következő lekérdezést használhatjuk:

SELECT Terméknév, egységár RENDELKEZÉSI TERMÉKEKHEZ ahol egységár> 15,00 ÉS egységár <20,00

Ez az alábbi eredményt eredményezi:

TermékName UnitPrice ------- -------- Chai 18.00 Chang 19.00

A tartományok kifejezését BETWEEN-vel

Az SQL szintén tartalmaz egy parancsikonat, amely csökkenti a feltételeket, amelyekre szükségünk van, és megkönnyíti a lekérdezést. Például, a fenti két WHERE feltétel helyett a következő lekérdezést lehetett kifejezni:

SELECT TermékName, UnitPrice FROM termékek WHERE UnitPrice között 15.00 és 20.00

Mint a többi feltételes záradékunkhoz, BETWEEN a string értékekkel is működik. Ha a V, W vagy X névvel kezdődő összes ország listáját szeretnénk létrehozni, akkor a lekérdezést használhatjuk:

SELECT terméknév a termékek közül, ahol a terméknév az "A" és a "D"

Mi eredményezi az eredményt:

Terméknév ------- Anizsájú szirup Chai Chang Chef Anton's Gumbo Mix Chef Anton's Cajun Seasoning

A WHERE záradék az SQL nyelv egyik erőteljes része, amely lehetővé teszi az eredmények korlátozását a meghatározott tartományba eső értékekre. Nagyon általánosan használják az üzleti logika kifejtését, és minden adatbázis szakmai eszközkészletének részét kell képezniük.

Gyakran hasznos, ha a szokásos záradékokat egy tárolt eljárásba foglalja , hogy hozzáférhessen azokhoz, akiknek nincs SQL ismerete.