ออราเคิล LIKE

Xxrakheil Like



ใน Oracle และฐานข้อมูลเชิงสัมพันธ์อื่นๆ การจับคู่รูปแบบเป็นคุณสมบัติยอดนิยมที่ช่วยให้คุณสามารถค้นหารูปแบบสตริงโดยใช้ไวยากรณ์พิเศษ ตัวอย่างเช่น คุณสามารถค้นหาสตริงย่อยภายในชุดสตริงขนาดใหญ่โดยใช้ตัวดำเนินการและฟังก์ชันการจับคู่รูปแบบ

สิ่งนี้ทำให้มีประโยชน์มากสำหรับการสร้างส่วนคำสั่งการค้นหาอย่างง่ายโดยไม่เกิดผลเสียด้านประสิทธิภาพที่สำคัญในฐานข้อมูล







ในบทช่วยสอนนี้ คุณจะพบกับโอเปอเรเตอร์ LIKE ใน Oracle เพื่อดำเนินการค้นหาการจับคู่รูปแบบ



โอเปอเรเตอร์ Oracle LIKE

ตัวดำเนินการ LIKE ใน Oracle ช่วยให้คุณค้นหารูปแบบเฉพาะในคอลัมน์ที่กำหนด ตัวอย่างเช่น คุณสามารถใช้เพื่อค้นหาแถวทั้งหมดที่ชื่อของลูกค้าขึ้นต้นด้วยรูปแบบ 'จ้า'



คุณมักจะพบว่าตัวดำเนินการนี้ใช้ร่วมกับส่วนคำสั่ง SQL อื่นๆ เช่น ส่วนคำสั่ง WHERE เพื่อกรองผลลัพธ์ของเราตามรูปแบบเฉพาะ





เราสามารถแสดงไวยากรณ์ของตัวดำเนินการ LIKE ใน SQL ได้ดังที่แสดงด้านล่าง:

รูปแบบการแสดงออก LIKE [ หนี 'escape_ตัวละคร' ]



  1. พารามิเตอร์นิพจน์ระบุคอลัมน์ที่คุณต้องการค้นหา
  2. พารามิเตอร์รูปแบบกำหนดรูปแบบเฉพาะที่คุณต้องการค้นหา รูปแบบที่ระบุสามารถมีอักขระตัวแทน เช่น % และ _ เพื่อจับคู่อักขระจำนวนเท่าใดก็ได้หรืออักขระเดียวตามลำดับ
  3. เรายังสามารถรวมส่วนคำสั่ง ESCAPE เพื่อระบุอักขระหลีกที่ใช้เพื่อค้นหาอักขระตัวแทนจริง

ตัวอย่างโอเปอเรเตอร์ Oracle LIKE

ตัวอย่างต่อไปนี้สาธิตวิธีการใช้ตัวดำเนินการ LIKE ในตาราง Oracle

สมมติว่าเรามีตารางที่มีข้อมูลลูกค้าดังต่อไปนี้:

ตัวอย่างที่ 1 – การใช้อักขระตัวแทน %

เราสามารถใช้อักขระตัวแทน % เพื่อจับคู่สตริงใดๆ ที่มีอักขระตั้งแต่ศูนย์ขึ้นไป ตัวอย่างเช่น เราสามารถค้นหารายการทั้งหมดในตารางที่มีชื่อ 'Will%'

ใช้ตารางพนักงานที่แสดงด้านล่าง:

เลือก first_name, last_name, เงินเดือน
จากพนักงาน
ที่ FIRST_NAME ชอบ 'จะ%'
สั่งซื้อโดย first_name;

แบบสอบถามก่อนหน้านี้เลือกคอลัมน์ first_name, last_name และเงินเดือนจากตารางพนักงาน และจัดลำดับค่าผลลัพธ์ตามคอลัมน์ first_name

นอกจากนี้เรายังรวมคำสั่ง where ร่วมกับตัวดำเนินการ LIKE ด้วยอักขระตัวแทน % เพื่อดึงเฉพาะแถวที่ชื่อขึ้นต้นด้วย 'Will'

สิ่งนี้ควรส่งคืนแถวเป็น:

เรายังสามารถใช้อักขระตัวแทน % เพื่อดึงแถวที่ลงท้ายด้วยรูปแบบเฉพาะ

ตัวอย่างแสดงไว้ด้านล่าง:

เลือก first_name, last_name, เงินเดือน
จากพนักงาน
ที่ FIRST_NAME ชอบ '%เป็น'
สั่งซื้อโดย first_name;

ในกรณีนี้ ข้อความค้นหาก่อนหน้าควรส่งคืนแถวทั้งหมดที่ชื่อลงท้ายด้วย 'er' ตัวอย่างค่าที่ได้แสดงไว้ด้านล่าง:

ตัวดำเนินการ LIKE ของฐานข้อมูล Oracle จะพิจารณาตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ตามค่าเริ่มต้น ดังนั้นจึงจำเป็นอย่างยิ่งที่จะต้องคำนึงถึงสิ่งนี้ในขณะที่ค้นหารูปแบบเฉพาะ คุณสามารถใช้ฟังก์ชันอื่น เช่น ล่างและบน เพื่อลบล้างลักษณะการทำงานนี้

ตัวอย่างที่ 2 – การใช้ Escape Clause

ตัวอย่างต่อไปนี้สาธิตวิธีใช้ส่วนคำสั่ง ESCAPE ในตัวดำเนินการ Oracle LIKE:

เลือก first_name, last_name, เงินเดือน, commission_pct
จากพนักงาน
โดยที่ commission_pct ชอบ 'ยี่สิบ\%' หนี '\' ;

แบบสอบถามก่อนหน้านี้เลือกคอลัมน์ first_name, last_name, เงินเดือน และ commission_pct จากตาราง EMPLOYEES ส่วนคำสั่ง WHERE ใช้ตัวดำเนินการ LIKE กับส่วนคำสั่ง ESCAPE เพื่อดึงข้อมูลระเบียนที่คอลัมน์ commission_pct มีสตริง '20%' (ที่มีอักขระ % ตามตัวอักษร ไม่ใช่อักขระตัวแทน)

ในกรณีนี้ เราจะหลีกเลี่ยงอักขระ % ด้วยเครื่องหมายแบ็กสแลช (\) เมื่อค้นหาสตริง 20% สิ่งนี้ทำให้ตัวดำเนินการ LIKE ค้นหาสตริงที่แน่นอน '20%' แทนการใช้อักขระ % เป็นอักขระตัวแทน

ข้อความค้นหานี้จะส่งคืนแถวทั้งหมดจากตาราง EMPLOYEES โดยที่คอลัมน์ commission_pct มีสตริงที่แน่นอน '20%' พร้อมด้วยคอลัมน์ชื่อ นามสกุล และเงินเดือนสำหรับแถวเหล่านั้น

บทสรุป

ในโพสต์นี้ คุณได้เรียนรู้วิธีใช้ตัวดำเนินการ LIKE ในฐานข้อมูล Oracle เพื่อค้นหารูปแบบเฉพาะในตาราง มีตัวอย่างมากมายเพื่อเน้นการใช้อักขระตัวแทนและส่วนคำสั่ง ESCAPE