V Oracle a dalších relačních databázích je vyhledávání vzorů oblíbenou funkcí, která umožňuje vyhledávat vzory řetězců pomocí speciálních syntaxí. Můžete například hledat podřetězec ve velké sadě řetězců pomocí operátorů a funkcí pro porovnávání vzorů.
Díky tomu je velmi užitečný pro vytváření jednoduchých vyhledávacích klauzulí, aniž by to znamenalo výrazné snížení výkonu databáze.
V tomto tutoriálu se setkáte s operátorem LIKE v Oracle pro provádění dotazů na porovnávání vzorů.
Operátor Oracle LIKE
Operátor LIKE v Oracle umožňuje vyhledat konkrétní vzor v daném sloupci. Můžete jej například použít k vyhledání všech řádků, kde křestní jméno zákazníka začíná vzorem ‚Ja‘.
Tento operátor se často používá ve spojení s jinými klauzulemi SQL, jako je klauzule WHERE, k filtrování našich výsledků na základě konkrétního vzoru.
Syntaxi operátoru LIKE můžeme vyjádřit v SQL, jak je ukázáno níže:
výraz LIKE vzor [ UNIKNOUT 'escape_character' ]- Parametr výraz určuje sloupec, který chcete prohledat.
- Parametr vzor definuje konkrétní vzor, který chcete hledat. Zadaný vzor může obsahovat zástupné znaky jako % a _, aby odpovídaly libovolnému počtu znaků nebo jednotlivému znaku.
- Můžeme také zahrnout klauzuli ESCAPE pro specifikaci escape znaku používaného k hledání skutečných zástupných znaků.
Příklady operátorů Oracle LIKE
Následující příklady ukazují, jak používat operátor LIKE v tabulce Oracle.
Předpokládejme, že máme tabulku obsahující informace o zákaznících, jak je uvedeno níže:
Příklad 1 – Použití % zástupných znaků
Zástupné znaky % můžeme použít k porovnání libovolných řetězců s nulou nebo více znaky. Můžeme například najít všechny položky v tabulce obsahující název ‚Will%‘.
Vezměte si níže uvedenou tabulku zaměstnanců:
vybrat jméno, příjmení, platod ZAMĚSTNANCŮ
kde se líbí FIRST_NAME 'Vůle%'
seřadit podle křestního_jména;
Předchozí dotaz vybere sloupce first_name, last_name a plat z tabulky zaměstnanců a seřadí výsledné hodnoty podle sloupce first_name.
Také kombinujeme klauzuli where ve spojení s operátorem LIKE se zástupnými znaky %, abychom načetli pouze řádky, kde křestní jméno začíná ‚Will‘.
To by mělo vrátit řádky jako:
Můžeme také použít zástupný znak % k načtení řádků, které končí určitým vzorem.
Příklad je uveden níže:
vybrat jméno, příjmení, platod ZAMĚSTNANCŮ
kde se líbí FIRST_NAME '%je'
seřadit podle křestního_jména;
V tomto případě by předchozí dotaz měl vrátit všechny řádky, kde křestní jméno končí na „er“. Příklad výsledné hodnoty je uveden níže:
Operátor LIKE databáze Oracle ve výchozím nastavení rozlišuje velká a malá písmena, takže je nezbytné mít na paměti toto při hledání konkrétních vzorů. Chcete-li toto chování negovat, můžete použít další funkce, například dolní a horní.
Příklad 2 – Použití únikové klauzule
Následující příklad ukazuje, jak použít klauzuli ESCAPE v operátoru Oracle LIKE:
vybrat jmeno, prijmeni, plat, provize_pctod ZAMĚSTNANCŮ
kde provize_pct jako 'dvacet\%' uniknout '\' ;
Předchozí dotaz vybere sloupce first_name, last_name, plat a Commission_pct z tabulky ZAMĚSTNANCI. Klauzule WHERE používá operátor LIKE s klauzulí ESCAPE k načtení záznamů, kde sloupec Commission_pct obsahuje řetězec „20 %“ (s doslovným znakem %, nikoli zástupným znakem).
V tomto případě znak % escapujeme zpětným lomítkem (\) při hledání řetězce 20 %. To umožňuje operátoru LIKE hledat přesný řetězec „20 %“ namísto toho, aby znak % považoval za zástupný znak.
Tento dotaz by vrátil všechny řádky z tabulky ZAMĚSTNANCI, kde sloupec Commission_pct obsahuje přesný řetězec „20 %“ spolu se sloupci jméno, příjmení a plat pro tyto řádky.
Závěr
V tomto příspěvku jste se naučili používat operátor LIKE v databázích Oracle k hledání konkrétních vzorů v tabulce. Je poskytnuto několik příkladů pro zvýraznění pomocí zástupných znaků a klauzule ESCAPE.