A Strukturált lekérdezési nyelv (SQL) lehetővé teszi az adatbázis-felhasználók számára, hogy testreszabott lekérdezéseket hozzanak létre az adatbázisokból történő információk kinyerésére. Egy korábbi cikkünkben feltártuk az információk adatbázisból történő kinyerését SQL SELECT lekérdezések segítségével. Bővítsük ezt a vitát, és vizsgáljuk meg, hogyan teljesíthetsz tovább lekérdezések hogy visszakereshesse azokat az adatokat megfelel az adott feltételeknek.
Vegyünk egy példát a gyakran használt példák alapján Északi szél adatbázis, amely oktatóanyagként gyakran szállít adatbázis termékeket.
Íme egy részlet az adatbázis Termék táblázatából:
Termék azonosító | Termék név | Szállítóazonosító | QuantityPerUnit | Egységár | UnitsInStock |
---|---|---|---|---|---|
1 | Chai | 1 | 10 doboz x 20 zsák | 18.00 | 39 |
2 | Chang | 1 | 24 - 12 oz palack | 19.00 | 17 |
3 | Ánizsszirup | 1 | 12 - 550 ml-es palackok | 10.00 | 13 |
4 | Anton szakács Cajun fűszerezése | 2 | 48 - 6 oz üvegek | 22.00 | 53 |
5 | Anton séf Gumbo keveréke | 2 | 36 doboz | 21.35 | 0 |
6 | Nagymama Boysenberry kenése | 3 | 12 - 8 oz üvegek | 25.00 | 120 |
7 | Bob bácsi szerves szárított körte | 3 | 12 - 1 lb db. | 30.00 | 15 |
Egyszerű határfeltételek
A lekérdezésünkre vonatkozó első korlátozások egyszerű határfeltételeket tartalmaznak. Ezeket megadhatjuk a SELECT lekérdezés WHERE záradékában, egyszerű operátorokkal felépített feltételfeltételek használatával, például ,> = és <=.
Először próbálkozzunk egy egyszerű lekérdezéssel, amely lehetővé teszi számunkra az adatbázis összes termékének felsorolását, amelynek UnitPrice értéke meghaladja a 20,00-at:
Válassza ki a ProductName, UnitPrice elemet
FROM termékekből
HOL Egységár> 20.00
Ez négy termék listáját állítja össze, az alábbiak szerint:
ProductName UnitPrice
Anton séf Gumbo Mixje 21.35
Anton séf Cajun fűszerezése 22.00
Nagymama Boysenberry kenése 25.00
Bob bácsi szerves szárított körte 30.00
Használhatjuk a WHERE záradékot is string értékekkel. Ez alapvetően azonosítja a karaktereket a számokkal, A-val az 1. értéket, Z-vel pedig a 26-ot. Megmutathatjuk például az U, V, W, X, Y vagy Z kezdetű termékeket a következő lekérdezéssel:
Válassza ki a ProductName elemet
FROM termékekből
WHERE ProductName> = 'T'
Ami eredményt ad:
Termék név
Bob bácsi szerves szárított körte
Tartományok kifejezése a határok használatával
A WHERE záradék lehetővé teszi számunkra, hogy egy tartományon belüli feltételeket több feltétel használatával valósítsunk meg. Például, ha meg akarnánk venni a fenti lekérdezésünket, és az eredményeket olyan termékekre korlátoznánk, amelyek ára 15.00 és 20.00 között van, akkor a következő lekérdezést használhatjuk:
Válassza ki a ProductName, UnitPrice elemet
FROM termékekből
HOL Egységár> 15,00 ÉS Egységár <20,00
Ez az alább látható eredményt adja:
ProductName UnitPrice
Csai 18.00
Chang 19.00
Tartományok kifejezése KÖZÖTT
Az SQL a BETWEEN szintaxis gyorsparancsot is biztosít, amely csökkenti a feltüntetendő feltételek számát, és olvashatóbbá teszi a lekérdezést. Például a fenti két WHERE feltétel használata helyett ugyanazt a lekérdezést fejezhetjük ki, mint:
Válassza ki a ProductName, UnitPrice elemet
FROM termékekből
Hol az egységár 15.00 ÉS 20.00 KÖZÖTT
Csakúgy, mint a többi feltételes záradékunknál, a BETWEEN is string értékekkel működik. Ha össze szeretnénk állítani az összes V-vel, W-vel vagy X-vel kezdődő ország listáját, használhatnánk a következő lekérdezést:
Válassza ki a ProductName elemet
FROM termékekből
WHERE ProductName "A" és "D" KÖZÖTT
Ami eredményt ad:
Termék név
Ánizsszirup
Chai
Chang
Anton séf Gumbo keveréke
Anton szakács Cajun fűszerezése
A WHERE záradék az SQL nyelv hatékony része, amely lehetővé teszi az eredmények korlátozását a megadott tartományokba eső értékekre. Nagyon gyakran használják az üzleti logika kifejezésére, és minden adatbázis-szakértő eszköztárának részét kell képeznie. Gyakran hasznos, ha a gyakori záradékokat beépítjük egy tárolt eljárásba, hogy hozzáférhetővé tegyük az SQL-ismeretekkel nem rendelkezők számára.