ฟังก์ชัน PostgreSQL เพื่อส่งคืนตาราง

Fangkchan Postgresql Pheux Sng Khun Tarang



บางครั้ง คุณอาจต้องการสร้างฟังก์ชันที่ส่งคืนตารางในฐานข้อมูล PostgreSQL ของคุณเพื่อสรุปชุดผลลัพธ์ การสร้างฟังก์ชัน 'pgSQL' ที่ช่วยให้คุณสามารถดึงข้อมูลระเบียนและใช้แบบสอบถามส่งคืนที่แสดงชุดผลลัพธ์เป็นตารางได้ โพสต์นี้จะแนะนำคุณเกี่ยวกับการสร้างฟังก์ชัน PostgreSQL ที่ส่งคืนตาราง

วิธีสร้างฟังก์ชัน PostgreSQL เพื่อส่งคืนตาราง

เมื่อคุณมีฐานข้อมูล PostgreSQL และต้องการตรวจสอบบันทึกจากตาราง การใช้ฟังก์ชันเป็นระยะๆ เป็นวิธีที่สะดวกที่สุด โดยเฉพาะฟังก์ชัน PostgreSQL ที่ส่งคืนตารางในชุดผลลัพธ์ ด้วยวิธีนี้ คุณจะสรุปชุดผลลัพธ์ของคุณ และการใช้วิธีการนี้จะช่วยให้มีการจัดระเบียบโค้ดที่ดีขึ้น

ต่อไปนี้เป็นไวยากรณ์สำหรับสร้างฟังก์ชัน PostgreSQL ที่ส่งคืนตาราง:







สร้างหรือแทนที่ฟังก์ชัน function_name(parameter_list)

ตารางการส่งคืน (column_list)

เช่น $$

BEGIN RETURN QUERY (แบบสอบถาม);

จบ;

$$ ภาษา plpgsql

ข้อดีของการสร้างฟังก์ชันดังกล่าวคือช่วยให้คุณสามารถระบุ 'column_list' ต่างๆ ได้ แทนที่จะส่งกลับค่าเดียวจากตารางของคุณ เรามีสองตัวอย่างเพื่อช่วยให้เราเข้าใจว่าต้องปฏิบัติตามขั้นตอนใด



ตัวอย่างที่ 1: การทำงานกับอินพุตเดียว

เมื่อสร้างฟังก์ชันที่ส่งคืนตาราง คุณต้องระบุอาร์กิวเมนต์เพื่อใช้กับคิวรีส่งคืน อาร์กิวเมนต์อาจเป็นรูปแบบหรืออินพุตเฉพาะก็ได้ ตัวอย่างนี้ให้กรณีที่เราใช้อินพุตเดียวเป็นอาร์กิวเมนต์



ต่อไปนี้คือตาราง “นักเรียน” ที่เราจะใช้สำหรับการสืบค้นของเรา:





ในภาพต่อไปนี้ เราสร้างฟังก์ชันชื่อ 'get_student' ซึ่งรับ INT เป็นอาร์กิวเมนต์ ในส่วน RETURNS TABLE เราจะส่งคืนตารางที่มีสี่คอลัมน์ ได้แก่ “student_id”, “student_name”, “student_faculty” และ “current_status”



คอลัมน์ทั้งหมดเหล่านี้ได้รับค่าจากแบบสอบถามส่งคืนที่เรากำหนด โปรดสังเกตว่าแบบสอบถามที่ส่งคืนใช้คำสั่ง WHERE โดยใช้รายการพารามิเตอร์ที่เราระบุเมื่อสร้างฟังก์ชัน

เมื่อคุณสร้างฟังก์ชันนี้ คุณจะได้รับผลลัพธ์ที่คล้ายกับฟังก์ชันที่เราเคยมีก่อนหน้านี้ ซึ่งยืนยันว่าฟังก์ชัน PostgreSQL ของคุณถูกสร้างขึ้นได้สำเร็จ หากต้องการตรวจสอบเพิ่มเติม ให้รันคำสั่งต่อไปนี้เพื่อแสดงรายการฟังก์ชันที่พร้อมใช้งาน:

\df *get_student();

เราเพิ่มเครื่องหมายดอกจันเพื่อให้ตรงกับฟังก์ชันใดๆ ที่มีชื่อที่ระบุ ผลลัพธ์แสดงว่าเรามีฟังก์ชัน PostgreSQL ในฐานข้อมูลของเรา

ขั้นตอนสุดท้ายคือการทดสอบฟังก์ชันที่สร้างขึ้น เรียกใช้คำสั่ง 'select' เพื่อเรียกใช้ฟังก์ชัน จากนั้น เพิ่มอาร์กิวเมนต์ที่คาดหวัง ในกรณีของเรา พารามิเตอร์จะเป็นประเภท INT ดังนั้นเราจึงเพิ่ม 1 เป็นอาร์กิวเมนต์ของเราเพื่อดึงข้อมูลระเบียนที่ตรงกันและส่งกลับตารางดังแสดงต่อไปนี้:

ตัวอย่างที่ 2: การทำงานกับรูปแบบการป้อนข้อมูล

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

เราใช้ตารางต่อไปนี้สำหรับกรณีนี้และกำหนดเป้าหมายคอลัมน์ชื่อ:

เราสร้างฟังก์ชั่นที่คล้ายกับที่เราทำก่อนหน้านี้ อย่างไรก็ตาม ประเภทพารามิเตอร์มีการเปลี่ยนแปลง และแบบสอบถามส่งคืนใช้ตัวดำเนินการ ILIKE ซึ่งถูกเพิ่มเป็นอาร์กิวเมนต์เมื่อเรียกใช้ฟังก์ชัน

เมื่อฟังก์ชั่นพร้อมแล้วเราก็สามารถเรียกมันคืนตารางได้ มีวิธีที่แตกต่างกันไปเกี่ยวกับเรื่องนี้ ตัวอย่างเช่น หากรูปแบบการค้นหามีคำว่า 'Jo' อยู่ในสตริง เราจะดำเนินการสืบค้นคำสั่งดังต่อไปนี้:

เลือก * จาก get_details('%Jo%');

เราจับคู่ค่าทั้งหมดกับ 'Jo' ในสตริง ทำให้เรามีสองระเบียน

หากเรารู้เพียงส่วนสุดท้ายของสตริง เราจะบิดแบบสอบถามและรันดังนี้:

เลือก * จาก get_details('%Tyson');

สุดท้ายนี้ ถ้าเราทราบส่วนแรกของสตริง เราจะเพิ่มสัญลักษณ์ “&” หลังรูปแบบดังแสดงต่อไปนี้:

เลือก * จาก get_details('Tim%');

นี่เป็นตัวอย่างที่แตกต่างกันเกี่ยวกับวิธีใช้ฟังก์ชัน PostgreSQL เพื่อส่งคืนตาราง

บทสรุป

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