I Oracle og andre relasjonsdatabaser er mønstermatching en populær funksjon som lar deg søke etter strengmønstre ved hjelp av spesielle syntaks. For eksempel kan du søke etter en substring i et stort sett med strenger ved å bruke mønster-matchende operatører og funksjoner.
Dette gjør det veldig nyttig å bygge enkle søkeklausuler uten å pådra seg betydelige ytelsesstraffer i databasen.
I denne opplæringen vil du komme over lignende operatør i Oracle for å utføre mønster-matchende spørsmål.
Oracle som operatør
Lignende operatør i Oracle lar deg søke etter et spesifikt mønster i en gitt kolonne. For eksempel kan du bruke den til å finne alle radene der kundens fornavn starter med mønsteret 'JA'.
Du finner ofte denne operatøren som brukes i forbindelse med andre SQL -klausuler, for eksempel hvor leddet, for å filtrere resultatene våre basert på et spesifikt mønster.
Vi kan uttrykke syntaks for lignende operatør i SQL som vist nedenfor:
uttrykk som mønster [Escape 'Escape_character']
Oracle som operatøreksempler
Følgende eksempler viser hvordan du bruker lignende operatør i en orakelbord.
Anta at vi har en tabell som inneholder kundeinformasjon som vist nedenfor:
Eksempel 1 - Bruke % wildcard -tegn
Vi kan bruke % jokertegn for å matche eventuelle strenger på null eller flere tegn. For eksempel kan vi finne alle oppføringene i en tabell som inneholder navnet 'Will%'.
Ta de ansattes bord vist nedenfor:
Velg First_name, Last_name, Lønn
fra ansatte
der første_navn som 'vil%'
bestill av første_navn;
Den forrige spørringen velger første_navn, siste_navn og lønnskolonner fra de ansattes tabell og bestiller de resulterende verdiene etter første_navn -kolonnen.
Vi kombinerer også en hvor klausul i forbindelse med en lignende operatør med % jokertegn for bare å hente radene der fornavnet starter med 'Will'.
Dette skal returnere radene som:
Vi kan også bruke % jokertegn for å hente radene som ender i et spesifikt mønster.
Et eksempel er vist nedenfor:
Velg First_name, Last_name, Lønn
fra ansatte
der første_navn som '%er'
bestill av første_navn;
I dette tilfellet bør den forrige spørringen returnere alle radene der fornavnet ender i 'er'. Et eksempel resulterende verdi vises nedenfor:
Oracle-databasen er som operatør som standard som standard, så det er viktig å huske på dette mens du søker etter spesifikke mønstre. Du kan bruke andre funksjoner, for eksempel nedre og øvre, for å negere denne oppførselen.
Eksempel 2 - Bruke fluktbestemmelsen
Følgende eksempel viser hvordan du bruker rømningsklausulen i Oracle som operatør:
Velg First_Name, Last_name, Palary, Commission_PCT
fra ansatte
der Commission_pct som '20 \%'Escape' \ ';
Den forrige spørringen velger første_navn, siste_navn, lønn og commission_pct kolonner fra de ansatte tabellen. WHERE -leddet bruker lignende operatør med rømningsklausulen for å hente postene der Commission_PCT -kolonnen inneholder strengen '20 % '(med bokstavelig % tegn, ikke et jokertegn).
I dette tilfellet slipper vi unna % karakteren med en Backslash (\) -tegn når vi søker etter strengen 20 %. Dette gjør at lignende operatør kan søke etter den nøyaktige strengen '20 % 'i stedet for å behandle % -karakteren som et jokertegn.
Denne spørringen vil returnere alle rader fra de ansatte -tabellen der Commission_PCT -kolonnen inneholder den nøyaktige strengen '20%', sammen med første_navn, siste_navn og lønnskolonner for disse radene.
Konklusjon
I dette innlegget lærte du hvordan du bruker lignende operatør i Oracle -databaser for å søke etter spesifikke mønstre i en tabell. Flere eksempler er gitt for å fremheve ved hjelp av jokertegn og rømningsklausulen.