Oracle LIKE

Oracle Like



Sa Oracle at iba pang relational database, ang pagtutugma ng pattern ay isang sikat na feature na nagbibigay-daan sa iyong maghanap ng mga pattern ng string gamit ang mga espesyal na syntax. Halimbawa, maaari kang maghanap ng substring sa loob ng malaking hanay ng mga string gamit ang mga operator at function na tumutugma sa pattern.

Ginagawa nitong lubhang kapaki-pakinabang para sa pagbuo ng mga simpleng sugnay sa paghahanap nang hindi nagkakaroon ng makabuluhang mga parusa sa pagganap sa database.







Sa tutorial na ito, makikita mo ang LIKE operator sa Oracle upang magsagawa ng mga query na tumutugma sa pattern.



Oracle LIKE Operator

Ang LIKE operator sa Oracle ay nagpapahintulot sa iyo na maghanap ng isang partikular na pattern sa isang naibigay na column. Halimbawa, maaari mo itong gamitin upang mahanap ang lahat ng mga row kung saan nagsisimula ang pangalan ng isang customer sa pattern na 'Ja'.



Madalas mong makikita ang operator na ito na ginagamit kasabay ng iba pang mga SQL clause, tulad ng WHERE clause, upang i-filter ang aming mga resulta batay sa isang partikular na pattern.





Maaari naming ipahayag ang syntax ng LIKE operator sa SQL tulad ng ipinapakita sa ibaba:

expression TULAD pattern [ TUMAKAS 'escape_character' ]



  1. Tinutukoy ng parameter ng expression ang column na gusto mong hanapin.
  2. Tinutukoy ng parameter ng pattern ang partikular na pattern na gusto mong hanapin. Ang tinukoy na pattern ay maaaring maglaman ng mga wildcard na character tulad ng % at _ upang tumugma sa anumang bilang ng mga character o isang character, ayon sa pagkakabanggit.
  3. Maaari rin naming isama ang ESCAPE clause upang tukuyin ang isang escape character na ginamit upang maghanap para sa aktwal na mga wildcard na character.

Mga Halimbawa ng Oracle LIKE Operator

Ang mga sumusunod na halimbawa ay nagpapakita kung paano gamitin ang LIKE operator sa isang Oracle table.

Ipagpalagay na mayroon kaming isang talahanayan na naglalaman ng impormasyon ng customer tulad ng ipinapakita sa ibaba:

Halimbawa 1 – Paggamit ng % Wildcard Character

Maaari naming gamitin ang % na wildcard na mga character upang tumugma sa anumang mga string ng zero o higit pang mga character. Halimbawa, mahahanap natin ang lahat ng mga entry sa isang talahanayan na naglalaman ng Pangalan na 'Will%'.

Kunin ang talahanayan ng mga empleyado na ipinapakita sa ibaba:

pumili unang_pangalan, apelyido, suweldo
mula sa MGA EMPLEYADO
kung saan gusto ni FIRST_NAME 'Will%'
order ayon sa first_name;

Pinipili ng nakaraang query ang first_name, last_name, at mga column ng suweldo mula sa talahanayan ng mga empleyado at inaayos ang mga resultang value ayon sa column na first_name.

Pinagsasama rin namin ang isang where clause kasabay ng isang LIKE operator na may % wildcard na character para makuha lang ang mga row kung saan nagsisimula ang unang pangalan sa 'Will'.

Dapat nitong ibalik ang mga hilera bilang:

Magagamit din namin ang % wildcard na character para kunin ang mga row na nagtatapos sa isang partikular na pattern.

Ang isang halimbawa ay ipinapakita sa ibaba:

pumili unang_pangalan, apelyido, suweldo
mula sa MGA EMPLEYADO
kung saan gusto ni FIRST_NAME '%ay'
order ayon sa first_name;

Sa kasong ito, dapat ibalik ng nakaraang query ang lahat ng mga row kung saan nagtatapos ang unang pangalan sa 'er'. Ang isang halimbawang nagresultang halaga ay ipinapakita sa ibaba:

Ang operator ng LIKE ng Oracle database ay case-sensitive bilang default, kaya mahalagang tandaan ito habang naghahanap ng mga partikular na pattern. Maaari kang gumamit ng iba pang mga function, gaya ng lower at upper, para i-negate ang gawi na ito.

Halimbawa 2 – Paggamit ng Escape Clause

Ang sumusunod na halimbawa ay nagpapakita kung paano gamitin ang ESCAPE clause sa Oracle LIKE operator:

pumili unang_pangalan, apelyido, suweldo, komisyon_pct
mula sa MGA EMPLEYADO
kung saan gusto ng commission_pct 'dalawampu\%' tumakas '\' ;

Pinipili ng nakaraang query ang mga column na first_name, last_name, suweldo, at commission_pct mula sa EMPLOYEES table. Ginagamit ng sugnay na WHERE ang operator ng LIKE na may sugnay na ESCAPE upang kunin ang mga tala kung saan ang column na commission_pct ay naglalaman ng string na '20%' (na may literal na % na character, hindi isang wildcard).

Sa kasong ito, tinatakasan namin ang % character na may backslash (\) character kapag naghahanap ng string na 20%. Nagbibigay-daan ito sa operator ng LIKE na maghanap para sa eksaktong string na '20%' sa halip na ituring ang % character bilang wildcard.

Ibabalik ng query na ito ang lahat ng row mula sa EMPLOYEES table kung saan ang column na commission_pct ay naglalaman ng eksaktong string na '20%', kasama ang first_name, last_name, at mga column ng suweldo para sa mga row na iyon.

Konklusyon

Sa post na ito, natutunan mo kung paano gamitin ang LIKE operator sa mga database ng Oracle upang maghanap ng mga partikular na pattern sa isang table. Maraming halimbawa ang ibinigay upang i-highlight gamit ang mga wildcard na character at ang ESCAPE clause.