Skip to main content

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 ได้โดยตรง