Views ใน PostgreSQL
บทนำ
Views ใน PostgreSQL คือการสร้างตารางเสมือน (Virtual Table) ที่ประกอบด้วยผลลัพธ์จากการคิวรีข้อมูลจากตารางจริง ๆ โดย View จะไม่เก็บข้อมูลจริงไว้ในตัว แต่จะเป็นเพียงการเก็บคำสั่ง SQL ที่ใช้ในการดึงข้อมูลจากตารางจริง ๆ เมื่อมีการเรียกใช้ View ระบบจะทำการประมวลผลคำสั่ง SQL ใน View นั้นใหม่ทุกครั้ง
การใช้ View มีข้อดีในเรื่องของความสะดวกในการจัดการข้อมูล เช่น การซ่อนข้อมูลที่ไม่ต้องการให้ผู้ใช้เข้าถึง หรือการปรับโครงสร้างของข้อมูลโดยไม่ต้องปรับเปลี่ยนโปรแกรมที่เรียกใช้งาน
1. การสร้าง View
ในการสร้าง View เราจะใช้คำสั่ง CREATE VIEW ตามด้วยชื่อ View และคำสั่ง SQL ที่จะใช้ดึงข้อมูล
ตัวอย่าง:
CREATE VIEW customer_orders AS
SELECT customer_id, COUNT(*) AS total_orders
FROM orders
GROUP BY customer_id;
ในตัวอย่างนี้เรากำลังสร้าง View ชื่อ customer_orders ที่จะเก็บข้อมูลจำนวนคำสั่งซื้อของแต่ละลูกค้า
2. การใช้ View
หลังจากสร้าง View แล้ว เราสามารถใช้ SELECT เพื่อดึงข้อมูลจาก View ได้เหมือนกับการดึงข้อมูลจากตารางจริง ๆ
ตัวอย่าง:
SELECT * FROM customer_orders;
ในตัวอย่างนี้เรากำลังดึงข้อมูลจาก View ชื่อ customer_orders ซึ่งจะคืนผลลัพธ์จำนวนคำสั่งซื้อของลูกค้าแต่ละคน
3. การอัปเดต View
การอัปเดตข้อมูลใน View จะไม่สามารถทำได้โดยตรง แต่ถ้าหาก View ถูกสร้างขึ้นจากข้อมูลที่สามารถอัปเดตได้ (เช่น ตารางเดียวหรือการใช้ฟังก์ชันที่ไม่ซับซ้อน) เราสามารถใช้คำสั่ง INSERT, UPDATE, หรือ DELETE กับ View ได้
ตัวอย่างการอัปเดตข้อมูลใน View:
UPDATE customer_orders
SET total_orders = 5
WHERE customer_id = 101;
ในกรณีนี้ UPDATE จะทำงานได้ ถ้า View สามารถทำให้เกิดผลลัพธ์ที่สามารถอัปเดตได้ตามที่ต้องการ
4. การลบ View
หากไม่ต้องการใช้ View อีกต่อไป เราสามารถลบ View ได้ด้วยคำสั่ง DROP VIEW
ตัวอย่าง:
DROP VIEW customer_orders;
ในตัวอย่างนี้ เรากำลังลบ View ชื่อ customer_orders
5. การใช้ View กับการควบคุมการเข้าถึงข้อมูล
การใช้ View สามารถช่วยให้เราควบคุมการเข้าถึงข้อมูลได้ดีขึ้น เนื่องจาก View สามารถซ่อนข้อมูลที่ไม่ต้องการให้ผู้ใช้เข้าถึงได้ เช่น การซ่อนข้อมูลส่วนบุคคลหรือข้อมูลที่ไม่สำคัญ
ตัวอย่าง:
CREATE VIEW employee_view AS
SELECT employee_id, employee_name
FROM employees;
ในตัวอย่างนี้ View ชื่อ employee_view จะทำให้ผู้ใช้สามารถเข้าถึงข้อมูลเกี่ยวกับ employee_id และ employee_name ได้ แต่ไม่สามารถเข้าถึงข้อมูลอื่น ๆ ในตาราง employees เช่น salary หรือ address
6. ข้อจำกัดของ View
- View ไม่เก็บข้อมูลจริง ๆ ในฐานข้อมูล
- ไม่สามารถสร้างดัชนี (Index) สำหรับ View
- การอัปเดตข้อมูลใน View อาจจะไม่สามารถทำได้ หาก View มีการใช้การคิวรีที่ซับซ้อนหรือการรวมหลายตาราง
สรุป
View ใน PostgreSQL เป็นเครื่องมือที่ช่วยในการจัดการข้อมูลในฐานข้อมูล โดยเป็นการสร้างตารางเสมือนที่มีผลลัพธ์จากการคิวรี SQL ข้อดีของ View คือการทำให้การเข้าถึงข้อมูลสะดวกขึ้นและช่วยในการซ่อนข้อมูลที่ไม่ต้องการให้ผู้ใช้เข้าถึง แต่ก็มีข้อจำกัดบางประการ เช่น ไม่สามารถเก็บข้อมูลจริง ๆ และอาจจะไม่สามารถอัปเดตข้อมูลใน View ได้โดยตรง