Oracle LIKE

Oracle Like



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' ]



  1. Parametr výraz určuje sloupec, který chcete prohledat.
  2. 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.
  3. 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í, plat
od 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í, plat
od 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_pct
od 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.