Zřídkakdy je potřeba načíst všechny záznamy z dané tabulky. Místo toho se často přistihnete, že načítáte záznamy, které odpovídají konkrétní podmínce nebo v daném rozsahu.
V tomto příspěvku se naučíme, jak používat operátor BETWEEN v databázi Oracle, který nám umožňuje vybrat řádky s hodnotami, které odpovídají určitému rozsahu z databázové tabulky.
Operátor Oracle BETWEEN
Operátor BETWEEN v Oracle nám umožňuje poskytnout podmínku vyhledávání při použití příkazů DML, jako jsou SELECT, INSERT, UPDATE nebo DELETE.
Když použijeme operátor BETWEEN s příkazem SELECT, vyberou se pouze řádky, jejichž hodnoty jsou v zadaném rozsahu.
Syntaxi operátoru BETWEEN vyjadřujeme následovně:
výraz MEZI nižší_rozsah A horní_rozsah;
Výraz v tomto případě definuje cílový výraz, jehož hodnota rozsahu má být testována.
Předpokládejme, že chceme načíst všechny řádky z tabulky zaměstnance, jehož plat je v daném rozsahu. V tomto případě se sloupec plat označuje jako výraz.
Následuje pseudosyntaxe pro předchozí analogii:
VYBRAT SLOUPCE KDE plat MEZI hodnota_1 A hodnota_2;Parametry lower_range a upper_range se používají k nastavení nejnižší a nejvyšší hodnoty, která má být zahrnuta do rozsahu.
Parametry lower_range a upper_range jsou propojeny operátorem AND.
Jakmile provedeme příkaz, operátor BETWEEN vrátí TRUE pro jakoukoli hodnotu, která je větší nebo rovna nejnižšímu_rozsahu a menší nebo rovna hornímu_rozsahu.
Ve většině případů se operátor BETWEEN používá s klauzulí WHERE, která umožňuje zavést podmínku vyhledávání.
Příklady operátorů Oracle BETWEEN
V této části uvedeme několik příkladů použití operátoru BETWEEN v databázi Oracle.
Předpokládejme, že máme tabulku, jak je znázorněno:
VYBRAT EMPLOYEE_ID , JMÉNO , E-MAILEM , PLAT Z ZAMĚSTNANCI;Výsledná tabulka:
Příklad 1: Testování číselného rozsahu pomocí operátoru BETWEEN
Předpokládejme, že chceme určit všechny zaměstnance, jejichž plat se pohybuje od 20 000 do 50 000.
Můžeme provést příkaz SELECT s operátorem BETWEEN ve spojení s klauzulí WHERE, jak je ukázáno v následujícím:
VYBRAT EMPLOYEE_ID , JMÉNO , E-MAILEM , PLATZ ZAMĚSTNANCI
KDE PLAT MEZI 20 000 A 50 000 ;
Předchozí dotaz by měl vrátit zaměstnance, jejichž plat je v tomto rozsahu, jak je znázorněno v následujícím:
Zde máme pouze jeden řádek, který odpovídá danému platovému rozpětí.
Příklad 2: Testování rozsahu dat pomocí operátoru BETWEEN
Můžeme také použít operátor BETWEEN k vyhledání záznamů, které odpovídají konkrétnímu časovému období.
Vezměte si jako příklad následující tabulku:
VYBRAT JMÉNO , E-MAILEM , HIRE_DATE , PLATZ ZAMĚSTNANCI;
Předpokládejme, že chceme určit všechny zaměstnance, jejichž datum přijetí je v daném rozsahu.
Můžeme také spárovat operátor BETWEEN s klauzulí WHERE, jak je ukázáno v následujícím:
VYBRAT JMÉNO , E-MAILEM , HIRE_DATE , PLATZ ZAMĚSTNANCI
KDE HIRE_DATE MEZI DATUM '2006-01-01' A DATUM '2007-01-01' ;
V tomto případě testujeme podmínku vyhledávání, kde je hodnota sloupce rental_date mezi 2006-01-01 a 2007-01-01.
To by mělo vrátit odpovídající řádky, jak je znázorněno v následujícím:
Všimněte si, jak jsou všechny hodnoty v rozsahu zadaného data.
Příklad 3: Použití operátoru BETWEEN s řazením podle klauzule
Oracle nám také umožňuje používat klauzule jako ORDER BY nebo GROUP BY k uspořádání výsledných hodnot v daném pořadí.
Předchozí tabulku můžeme například seřadit podle hodnoty platu od nejvyšší po nejnižší.
VYBRAT JMÉNO , E-MAILEM , HIRE_DATE , PLATZ ZAMĚSTNANCI
KDE HIRE_DATE MEZI DATUM '2006-01-01' A DATUM '2007-01-01'
OBJEDNAT PODLE PLAT DESC ;
Výsledná tabulka je následující:
Závěr
V tomto tutoriálu jsme prozkoumali použití operátoru BETWEEN v databázích Oracle, který nám umožňuje vyhledávat řádky, jejichž hodnota odpovídá danému rozsahu.