V Oracle a iných relačných databázach je porovnávanie vzorov populárnou funkciou, ktorá vám umožňuje vyhľadávať vzory reťazcov pomocou špeciálnych syntaxí. Môžete napríklad vyhľadať podreťazec vo veľkej množine reťazcov pomocou operátorov a funkcií na porovnávanie vzorov.
Vďaka tomu je veľmi užitočný pri vytváraní jednoduchých vyhľadávacích klauzúl bez toho, aby to znamenalo výrazné zníženie výkonu databázy.
V tomto návode sa stretnete s operátorom LIKE v Oracle, aby ste mohli vykonávať dotazy na porovnávanie vzorov.
Operátor Oracle LIKE
Operátor LIKE v Oracle umožňuje vyhľadať konkrétny vzor v danom stĺpci. Môžete ho použiť napríklad na nájdenie všetkých riadkov, kde krstné meno zákazníka začína vzorom „Ja“.
Tento operátor sa často používa v spojení s inými klauzulami SQL, ako je klauzula WHERE, na filtrovanie našich výsledkov na základe špecifického vzoru.
Môžeme vyjadriť syntax operátora LIKE v SQL, ako je uvedené nižšie:
výraz LIKE vzor [ ÚNIK 'escape_character' ]- Parameter výraz určuje stĺpec, ktorý chcete prehľadávať.
- Parameter vzor definuje špecifický vzor, ktorý chcete vyhľadať. Zadaný vzor môže obsahovať zástupné znaky ako % a _, aby sa zhodoval s ľubovoľným počtom znakov alebo s jedným znakom.
- Môžeme tiež zahrnúť klauzulu ESCAPE na určenie znaku escape, ktorý sa používa na vyhľadávanie skutočných zástupných znakov.
Príklady operátorov Oracle LIKE
Nasledujúce príklady ukazujú, ako používať operátor LIKE v tabuľke Oracle.
Predpokladajme, že máme tabuľku obsahujúcu informácie o zákazníkovi, ako je uvedené nižšie:
Príklad 1 – Použitie % zástupných znakov
Zástupné znaky % môžeme použiť na priradenie ľubovoľných reťazcov nula alebo viacerých znakov. Napríklad môžeme nájsť všetky položky v tabuľke obsahujúcej názov „Will%“.
Vezmite tabuľku zamestnancov zobrazenú nižšie:
vyberte meno, priezvisko, platod ZAMESTNANCOV
kde sa páči FIRST_NAME 'Will%'
zoradiť podľa krstného_mena;
Predchádzajúci dotaz vyberie stĺpce first_name, last_name a plat z tabuľky zamestnancov a zoradí výsledné hodnoty podľa stĺpca first_name.
Kombinujeme aj klauzulu where v spojení s operátorom LIKE so zástupnými znakmi %, aby sme získali iba riadky, kde krstné meno začína na „Will“.
Toto by malo vrátiť riadky ako:
Môžeme tiež použiť zástupný znak % na načítanie riadkov, ktoré končia špecifickým vzorom.
Príklad je uvedený nižšie:
vyberte meno, priezvisko, platod ZAMESTNANCOV
kde sa páči FIRST_NAME '%je'
zoradiť podľa krstného_mena;
V tomto prípade by predchádzajúci dotaz mal vrátiť všetky riadky, kde krstné meno končí na „er“. Príklad výslednej hodnoty je uvedený nižšie:
Operátor LIKE databázy Oracle v predvolenom nastavení rozlišuje malé a veľké písmená, takže je dôležité mať na to pri vyhľadávaní konkrétnych vzorov pamätať. Na negovanie tohto správania môžete použiť iné funkcie, ako napríklad spodnú a hornú.
Príklad 2 – Použitie únikovej klauzuly
Nasledujúci príklad ukazuje, ako používať klauzulu ESCAPE v operátorovi Oracle LIKE:
vyberte meno, priezvisko, plat, províziaod ZAMESTNANCOV
kde provízia_pct ako 'dvadsať\%' uniknúť '\' ;
Predchádzajúci dotaz vyberá stĺpce krstné_meno, priezvisko, plat a provízie_pct z tabuľky ZAMESTNANCI. Klauzula WHERE používa operátor LIKE s klauzulou ESCAPE na načítanie záznamov, v ktorých stĺpec Commission_pct obsahuje reťazec „20 %“ (s doslovným znakom %, nie zástupným znakom).
V tomto prípade pri hľadaní reťazca 20 % znak % unikneme spätnou lomkou (\). To umožňuje operátorovi LIKE vyhľadať presný reťazec „20 %“ namiesto toho, aby považoval znak % za zástupný znak.
Tento dotaz by vrátil všetky riadky z tabuľky ZAMESTNANCI, kde stĺpec Commission_pct obsahuje presný reťazec „20 %“ spolu so stĺpcami krstné meno, priezvisko a plat pre tieto riadky.
Záver
V tomto príspevku ste sa naučili, ako používať operátor LIKE v databázach Oracle na vyhľadávanie konkrétnych vzorov v tabuľke. Existuje niekoľko príkladov na zvýraznenie pomocou zástupných znakov a klauzuly ESCAPE.