Oracle LIKE

Oracle Like



Oraclessa ja muissa relaatiotietokannassa kuvioiden täsmäys on suosittu ominaisuus, jonka avulla voit etsiä merkkijonomalleja erityisillä syntaksilla. Voit esimerkiksi etsiä alimerkkijonoa suuresta merkkijonojoukosta käyttämällä kuvioita vastaavia operaattoreita ja funktioita.

Tämä tekee siitä erittäin hyödyllisen yksinkertaisten hakulausekkeiden luomisessa ilman merkittäviä tietokannan suoritusrangaistuksia.







Tässä opetusohjelmassa kohtaat Oraclen LIKE-operaattorin suorittamaan kuvion täsmäytyskyselyitä.



Oracle LIKE -operaattori

Oraclen LIKE-operaattorin avulla voit etsiä tiettyä kuviota tietystä sarakkeesta. Voit esimerkiksi etsiä sen avulla kaikki rivit, joissa asiakkaan etunimi alkaa kaavalla 'Ja'.



Tätä operaattoria käytetään usein yhdessä muiden SQL-lauseiden, kuten WHERE-lauseen, kanssa tulosten suodattamiseksi tietyn mallin perusteella.





Voimme ilmaista LIKE-operaattorin syntaksin SQL:ssä alla esitetyllä tavalla:

ilme LIKE kuvio [ PAETA 'escape_character' ]



  1. Lausekeparametri määrittää sarakkeen, josta haluat etsiä.
  2. Malliparametri määrittää tietyn kuvion, josta haluat etsiä. Määritetty malli voi sisältää jokerimerkkejä, kuten % ja _ vastaamaan mitä tahansa merkkiä tai yhtä merkkiä vastaavasti.
  3. Voimme myös sisällyttää ESCAPE-lauseen määrittääksesi erotusmerkin, jota käytetään etsimään todellisia jokerimerkkejä.

Esimerkkejä Oracle LIKE -operaattoreista

Seuraavat esimerkit osoittavat, kuinka LIKE-operaattoria käytetään Oracle-taulukossa.

Oletetaan, että meillä on alla näkyvä taulukko, joka sisältää asiakastiedot:

Esimerkki 1 – % jokerimerkkien käyttäminen

Voimme käyttää % jokerimerkkejä vastaamaan mitä tahansa nollan tai useamman merkin merkkijonoja. Löydämme esimerkiksi kaikki merkinnät taulukosta, joka sisältää nimen 'Will%'.

Ota alla oleva työntekijöiden taulukko:

valitse etunimi, sukunimi, palkka
alkaen EMPLOYEES
mistä FIRST_NAME tykkää 'Tahtoa%'
järjestys etunimen mukaan;

Edellinen kysely valitsee sarakkeet etu_nimi, sukunimi ja palkka sarakkeet työntekijöiden taulukosta ja järjestää saadut arvot etunimi-sarakkeen mukaan.

Yhdistämme myös jossa-lauseen LIKE-operaattorin kanssa % jokerimerkkien kanssa, jotta saadaan vain rivit, joiden etunimi alkaa Will-kirjaimella.

Tämän pitäisi palauttaa rivit seuraavasti:

Voimme myös käyttää % jokerimerkkiä noutaaksemme rivit, jotka päättyvät tiettyyn kuvioon.

Alla on esimerkki:

valitse etunimi, sukunimi, palkka
alkaen EMPLOYEES
mistä FIRST_NAME tykkää '%On'
järjestys etunimen mukaan;

Tässä tapauksessa edellisen kyselyn pitäisi palauttaa kaikki rivit, joissa etunimi päättyy 'er'. Esimerkki tuloksena olevasta arvosta näkyy alla:

Oracle-tietokannan LIKE-operaattori on oletuksena isot ja pienet kirjaimet erotteleva, joten on tärkeää pitää tämä mielessä, kun etsit tiettyjä malleja. Voit käyttää muita toimintoja, kuten alempaa ja ylempää, kumoamaan tämän toiminnan.

Esimerkki 2 – Escape-lausekkeen käyttö

Seuraava esimerkki osoittaa, kuinka ESCAPE-lausetta käytetään Oracle LIKE -operaattorissa:

valitse etunimi, sukunimi, palkka, palkkio_prosentti
alkaen EMPLOYEES
missä Commission_pct like 'kaksikymmentä\%' paeta '\' ;

Edellinen kysely valitsee TYÖNTEKIJÄT-taulukosta sarakkeet etunimi, sukunimi, palkka ja palkkioprosentti. WHERE-lause käyttää LIKE-operaattoria ESCAPE-lauseen kanssa noutaakseen tietueet, joissa Commission_pct-sarake sisältää merkkijonon '20%' (kirjaimellisella %-merkillä, ei jokerimerkillä).

Tässä tapauksessa poistamme %-merkin kenoviivalla (\) haettaessa merkkijonoa 20%. Tämä antaa LIKE-operaattorille mahdollisuuden etsiä tarkkaa merkkijonoa '20%' sen sijaan, että se käsittelee %-merkkiä jokerimerkkinä.

Tämä kysely palauttaa kaikki rivit TYÖNTEKIJÄT-taulukosta, jossa Commission_pct-sarake sisältää tarkan merkkijonon '20%' sekä näiden rivien etunimi-, sukunimi- ja palkkasarakkeet.

Johtopäätös

Tässä viestissä opit käyttämään LIKE-operaattoria Oraclen tietokannoista tiettyjen kuvioiden etsimiseen taulukosta. Useita esimerkkejä on korostettava käyttämällä jokerimerkkejä ja ESCAPE-lausetta.