ใน Oracle และฐานข้อมูลเชิงสัมพันธ์อื่นๆ การจับคู่รูปแบบเป็นคุณสมบัติยอดนิยมที่ช่วยให้คุณสามารถค้นหารูปแบบสตริงโดยใช้ไวยากรณ์พิเศษ ตัวอย่างเช่น คุณสามารถค้นหาสตริงย่อยภายในชุดสตริงขนาดใหญ่โดยใช้ตัวดำเนินการและฟังก์ชันการจับคู่รูปแบบ
สิ่งนี้ทำให้มีประโยชน์มากสำหรับการสร้างส่วนคำสั่งการค้นหาอย่างง่ายโดยไม่เกิดผลเสียด้านประสิทธิภาพที่สำคัญในฐานข้อมูล
ในบทช่วยสอนนี้ คุณจะพบกับโอเปอเรเตอร์ LIKE ใน Oracle เพื่อดำเนินการค้นหาการจับคู่รูปแบบ
โอเปอเรเตอร์ Oracle LIKE
ตัวดำเนินการ LIKE ใน Oracle ช่วยให้คุณค้นหารูปแบบเฉพาะในคอลัมน์ที่กำหนด ตัวอย่างเช่น คุณสามารถใช้เพื่อค้นหาแถวทั้งหมดที่ชื่อของลูกค้าขึ้นต้นด้วยรูปแบบ 'จ้า'
คุณมักจะพบว่าตัวดำเนินการนี้ใช้ร่วมกับส่วนคำสั่ง SQL อื่นๆ เช่น ส่วนคำสั่ง WHERE เพื่อกรองผลลัพธ์ของเราตามรูปแบบเฉพาะ
เราสามารถแสดงไวยากรณ์ของตัวดำเนินการ LIKE ใน SQL ได้ดังที่แสดงด้านล่าง:
รูปแบบการแสดงออก LIKE [ หนี 'escape_ตัวละคร' ]- พารามิเตอร์นิพจน์ระบุคอลัมน์ที่คุณต้องการค้นหา
- พารามิเตอร์รูปแบบกำหนดรูปแบบเฉพาะที่คุณต้องการค้นหา รูปแบบที่ระบุสามารถมีอักขระตัวแทน เช่น % และ _ เพื่อจับคู่อักขระจำนวนเท่าใดก็ได้หรืออักขระเดียวตามลำดับ
- เรายังสามารถรวมส่วนคำสั่ง 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