Vyberte data v rozsahu v SQL

The Strukturovaný dotazovací jazyk (SQL) poskytuje uživatelům databáze možnost vytvářet přizpůsobené dotazy k extrakci informací z databází. V dřívějším článku jsme prozkoumali extrakci informací z databáze pomocí dotazů SQL SELECT. Pojďme tuto diskusi rozšířit a prozkoumejme, jak můžete provádět pokročilé dotazy načíst data, která odpovídá konkrétním podmínkám.

Uvažujme příklad založený na běžně používaných Severní vítr databáze, která se často dodává s databázovými produkty jako výukový program.

Tady je výňatek z tabulky Produkt v databázi:

ID produktu Jméno výrobku ID dodavatele QuantityPerUnit Jednotková cena Balení skladem
1 Chai 1 10 krabic x 20 pytlů 18.00 39
2 Chang 1 24 - 12 oz lahve 19.00 17
3 Anýzový sirup 1 12 - 550 ml lahve 10.00 13
4 Cajunské koření šéfkuchaře Antona 2 48 - 6 oz sklenice 22.00 53
5 Mix šéfkuchaře Antona 2 36 krabic 21.35 0
6 Babiččina pomazánka z bobulí 3 12 - 8 oz sklenice 25.00 120
7 Organické sušené hrušky strýčka Boba 3 12 - 1 lb bal. 30.00 15
Tabulka produktů

Jednoduché okrajové podmínky

První omezení, která na náš dotaz umístíme, zahrnují jednoduché okrajové podmínky. Můžeme je určit v klauzuli WHERE dotazu SELECT pomocí jednoduchých příkazů podmínek vytvořených pomocí standardních operátorů, například ,> = a <=.

watch instagram stories

Nejprve zkusme jednoduchý dotaz, který nám umožní extrahovat seznam všech produktů v databázi, které mají UnitPrice více než 20,00:

VYBERTE ProductName, UnitPrice
Z produktů
KDE Jednotková cena> 20,00

Tím se vytvoří seznam čtyř produktů, jak je uvedeno níže:

ProductName UnitPrice

Kuchař Anton's Gumbo Mix 21.35
Koření šéfkuchaře Antona Cajuna 22.00
Babičkina šípka 25,00
Organické sušené hrušky strýčka Boba 30.00

Můžeme také použít klauzuli WHERE s hodnotami řetězce. To v podstatě rovná znaky číslům, přičemž A představuje hodnotu 1 a Z představuje hodnotu 26. Například bychom mohli ukázat všechny produkty s názvy začínajícími na U, V, W, X, Y nebo Z s následujícím dotazem:

VYBERTE Název produktu
Z produktů
KDE ProductName> = 'T'

Výsledkem je:

Jméno výrobku

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

Vyjádření rozsahů pomocí hranic

Klauzule WHERE nám také umožňuje implementovat podmínku rozsahu na hodnotě pomocí více podmínek. Pokud bychom například chtěli vzít výše uvedený dotaz a omezit výsledky na produkty s cenami mezi 15,00 a 20,00, mohli bychom použít následující dotaz:

VYBERTE ProductName, UnitPrice
Z produktů
KDE UnitPrice> 15,00 A UnitPrice <20,00

Výsledkem je níže uvedený výsledek:

ProductName UnitPrice

Chai 18.00
Chang 19.00

Vyjádření rozsahů MEZI

SQL také poskytuje zkratku MEZI syntaxí, která snižuje počet podmínek, které musíme zahrnout, a činí dotaz čitelnějším. Například namísto použití výše uvedených dvou podmínek WHERE bychom mohli vyjádřit stejný dotaz jako:

VYBERTE ProductName, UnitPrice
Z produktů
KDE Jednotková cena MEZI 15.00 A 20.00

Stejně jako u našich dalších klauzulí podmínek funguje BETWEEN také s řetězcovými hodnotami. Pokud bychom chtěli vytvořit seznam všech zemí začínajících V, W nebo X, mohli bychom použít dotaz:

VYBERTE Název produktu
Z produktů
KDE ProductName MEZI „A“ a „D“

Výsledkem je:

Jméno výrobku

Anýzový sirup
Chai
Chang
Mix šéfkuchaře Antona
Cajunské koření šéfkuchaře Antona

Klauzule WHERE je výkonnou součástí jazyka SQL, která umožňuje omezit výsledky na hodnoty spadající do určených rozsahů. Používá se velmi často k vyjádření obchodní logiky a měl by být součástí sady nástrojů každého profesionála v oblasti databází. Často je užitečné začlenit do uložené procedury běžné klauzule, aby byla přístupná pro ty, kteří nemají znalosti SQL.

instagram story viewer