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é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:
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.00A 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örteA 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,00Ez az alábbi eredményt eredményezi:
TermékName UnitPrice ------- -------- Chai 18.00 Chang 19.00A 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.00Mint 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 SeasoningA 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.