Oracle LIKE

Oracle Like



I Oracle og andre relationelle databaser er mønstermatchning en populær funktion, der giver dig mulighed for at søge efter strengmønstre ved hjælp af specielle syntakser. For eksempel kan du søge efter en understreng i et stort sæt strenge ved hjælp af mønstermatchende operatorer og funktioner.

Dette gør det meget nyttigt til at bygge simple søgeklausuler uden at pådrage sig væsentlige præstationsstraffe på databasen.







I denne øvelse vil du støde på LIKE-operatoren i Oracle for at udføre mønstermatchende forespørgsler.



Oracle LIKE operatør

LIKE-operatoren i Oracle giver dig mulighed for at søge efter et bestemt mønster i en given kolonne. For eksempel kan du bruge den til at finde alle rækker, hvor en kundes fornavn starter med mønsteret 'Ja'.



Du vil ofte finde denne operator brugt i forbindelse med andre SQL-sætninger, såsom WHERE-sætningen, til at filtrere vores resultater baseret på et specifikt mønster.





Vi kan udtrykke syntaksen for LIKE-operatoren i SQL som vist nedenfor:

udtryk LIKE mønster [ FLUGT 'escape_character' ]



  1. Udtryksparameteren angiver den kolonne, du vil søge efter.
  2. Mønsterparameteren definerer det specifikke mønster, du vil søge efter. Det angivne mønster kan indeholde jokertegn som % og _ for at matche et vilkårligt antal tegn eller et enkelt tegn.
  3. Vi kan også inkludere ESCAPE-sætningen for at angive et escape-tegn, der bruges til at søge efter de faktiske jokertegn.

Eksempler på Oracle LIKE-operatører

De følgende eksempler viser, hvordan man bruger LIKE-operatoren i en Oracle-tabel.

Antag, at vi har en tabel, der indeholder kundeoplysninger som vist nedenfor:

Eksempel 1 – Brug af % jokertegn

Vi kan bruge %-jokertegnene til at matche alle strenge med nul eller flere tegn. For eksempel kan vi finde alle indtastningerne i en tabel, der indeholder navnet 'Vilje%'.

Tag medarbejdernes tabel vist nedenfor:

Vælg fornavn, efternavn, løn
fra MEDARBEJDERE
hvor FIRST_NAME kan lide 'Vilje%'
rækkefølge efter fornavn;

Den forrige forespørgsel vælger kolonnerne fornavn, efternavn og løn fra medarbejdernes tabel og sorterer de resulterende værdier efter kolonnen fornavn.

Vi kombinerer også en where-klausul sammen med en LIKE-operator med %-jokertegnene for kun at hente de rækker, hvor fornavnet starter med 'Will'.

Dette skulle returnere rækkerne som:

Vi kan også bruge jokertegnet % til at hente de rækker, der ender i et bestemt mønster.

Et eksempel er vist nedenfor:

Vælg fornavn, efternavn, løn
fra MEDARBEJDERE
hvor FIRST_NAME kan lide '%er'
rækkefølge efter fornavn;

I dette tilfælde skal den forrige forespørgsel returnere alle rækker, hvor fornavnet slutter på 'er'. Et eksempel på resulterende værdi er vist nedenfor:

Oracle-databasens LIKE-operator er som standard forskel på store og små bogstaver, så det er vigtigt at have dette i tankerne, mens du søger efter specifikke mønstre. Du kan bruge andre funktioner, såsom nedre og øvre, til at ophæve denne adfærd.

Eksempel 2 – Brug af Escape-klausulen

Følgende eksempel viser, hvordan man bruger ESCAPE-sætningen i Oracle LIKE-operatoren:

Vælg fornavn, efternavn, løn, kommission_pct
fra MEDARBEJDERE
hvor commission_pct gerne 'tyve\%' flugt '\' ;

Den forrige forespørgsel vælger kolonnerne fornavn, efternavn, løn og provisions-pct fra tabellen MEDARBEJDERE. WHERE-udtrykket bruger LIKE-operatoren med ESCAPE-udtrykket til at hente de poster, hvor commission_pct-kolonnen indeholder strengen '20%' (med et bogstaveligt %-tegn, ikke et jokertegn).

I dette tilfælde undslipper vi %-tegnet med en omvendt skråstreg (\), når vi søger efter strengen 20%. Dette gør det muligt for LIKE-operatoren at søge efter den nøjagtige streng '20%' i stedet for at behandle %-tegnet som et jokertegn.

Denne forespørgsel ville returnere alle rækker fra tabellen MEDARBEJDERE, hvor kolonnen commission_pct indeholder den nøjagtige streng '20%' sammen med kolonnerne fornavn, efternavn og løn for disse rækker.

Konklusion

I dette indlæg lærte du, hvordan du bruger LIKE-operatoren i Oracle-databaser til at søge efter specifikke mønstre i en tabel. Der er givet adskillige eksempler til at fremhæve ved hjælp af jokertegn og ESCAPE-sætningen.