Vyberte údaje v rozmedzí v SQL

click fraud protection

The Jazyk štruktúrovaných dotazov (SQL) poskytuje používateľom databáz schopnosť vytvárať prispôsobené dotazy na extrakciu informácií z databáz. V predchádzajúcom článku sme skúmali extrakciu informácií z databázy pomocou dotazov SQL SELECT. Poďme túto diskusiu rozšíriť a preskúmať, ako môžete podať pokročilý výkon dotazy získať dáta, ktoré zodpovedá konkrétnym podmienkam.

Uvažujme o príklade na základe bežne používaných Severný vietor databázy, ktorá sa často dodáva s databázovými produktmi ako výučba.

Tu je výňatok z tabuľky Produktov v databáze:

Identifikačné číslo produktu Meno Produktu ID dodávateľa QuantityPerUnit Jednotková cena UnitsInStock
1 Chai 1 10 škatúľ x 20 sáčkov 18.00 39
2 Chang 1 24 - 12 oz fľaše 19.00 17
3 Anýzový sirup 1 12 - 550 ml fľaše 10.00 13
4 Cajunské korenie šéfkuchára Antona 2 48 - 6 oz tégliky 22.00 53
5 Mix šéfkuchára Antona 2 36 škatúľ 21.35 0
6 Bohatá nátierka od babičky 3 12 - 8 oz tégliky 25.00 120
7 Organické sušené hrušky strýka Boba 3 12 - 1 lb bal. 30.00 15
Tabuľka produktov

Jednoduché okrajové podmienky

instagram viewer

Prvé obmedzenia, ktoré kladieme na náš dotaz, zahŕňajú jednoduché okrajové podmienky. Môžeme ich určiť v klauzule WHERE dotazu SELECT pomocou jednoduchých príkazov stavu vytvorených so štandardnými operátormi, ako sú ,> = a <=.

Najskôr skúsme jednoduchý dotaz, ktorý nám umožní extrahovať zoznam všetkých produktov v databáze, ktoré majú jednotkovú cenu viac ako 20,00:

VYBERTE ProductName, UnitPrice
Z výrobkov
KDE Jednotková cena> 20,00

Týmto sa vytvorí zoznam štyroch produktov, ako je uvedené nižšie:

Jednotková cena produktu

Mix Gumbo od šéfkuchára Antona 21.35
Korenie šéfkuchára Antona Cajuna 22.00
Bohatá pomazánka od Babičky 25,00
Organické sušené hrušky strýka Boba 30.00

Môžeme tiež použiť klauzulu WHERE s hodnotami reťazca. V zásade sa znaky rovnajú číslam, pričom A predstavuje hodnotu 1 a Z predstavuje hodnotu 26. Napríklad by sme mohli zobraziť všetky produkty s názvami začínajúcimi na U, V, W, X, Y alebo Z s nasledujúcim dotazom:

VYBERTE názov produktu
Z výrobkov
KDE ProductName> = 'T'

Výsledkom je výsledok:

Meno Produktu

Organické sušené hrušky strýka Boba

Vyjadrovanie rozsahov pomocou hraníc

Klauzula WHERE nám tiež umožňuje implementovať podmienku rozsahu na hodnote pomocou viacerých podmienok. Napríklad, ak by sme chceli vziať náš dopyt vyššie a obmedziť výsledky na produkty s cenami od 15,00 do 20,00, môžeme použiť nasledujúci dotaz:

VYBERTE ProductName, UnitPrice
Z výrobkov
KDE Jednotková cena> 15,00 A Jednotková cena <20,00

Toto vyprodukuje výsledok uvedený nižšie:

Jednotková cena produktu

Čaj 18.00
Chang 19.00

Vyjadrovanie rozsahov MEDZI

SQL tiež poskytuje skratku MEDZI syntaxou, ktorá znižuje počet podmienok, ktoré musíme zahrnúť, a robí dotaz čitateľnejším. Napríklad namiesto použitia vyššie uvedených dvoch podmienok WHERE môžeme vysloviť rovnaký dotaz ako:

VYBERTE ProductName, UnitPrice
Z výrobkov
KDE Jednotková cena MEDZI 15.00 A 20.00

Rovnako ako v prípade našich ďalších klauzúl o podmienkach, aj BETWEEN pracuje s hodnotami reťazca. Ak by sme chceli vytvoriť zoznam všetkých krajín začínajúcich na V, W alebo X, mohli by sme použiť dotaz:

VYBERTE názov produktu
Z výrobkov
KDE ProductName MEDZI „A“ a „D“

Výsledkom je výsledok:

Meno Produktu

Anýzový sirup
Chai
Chang
Mix šéfkuchára Antona
Cajunské korenie šéfkuchára Antona

Klauzula WHERE je silnou súčasťou jazyka SQL, ktorá umožňuje obmedziť výsledky na hodnoty spadajúce do určených rozsahov. Používa sa veľmi často na vyjadrenie obchodnej logiky a malo by byť súčasťou sady nástrojov každého databázového profesionála. Často je užitočné začleniť bežné klauzuly do uloženej procedúry, aby bola prístupná tým, ktorí nemajú znalosti SQL.

instagram story viewer