Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> SQL Server

VIEW ใน SQL Server

VIEW คืออะไร?

VIEW เป็นตารางเสมือน (Virtual Table) ไม่เก็บข้อมูลจริง สร้างจากคำสั่ง SELECT ที่รวม 1 หรือหลายตาราง ใช้งานเหมือนตารางทั่วไป

1. สร้าง VIEW (CREATE VIEW)

CREATE VIEW [schema_name.]view_name
[WITH { ENCRYPTION | SCHEMABINDING | VIEW_METADATA }]
AS
SELECT column_list
FROM table_name
[WHERE condition];

ตัวเลือก WITH

  • ENCRYPTION: เข้ารหัสข้อความคำสั่งใน sys.syscomments
  • SCHEMABINDING: ผูกโครงสร้างตารางต้นทาง ห้าม ALTER/DROP ตารางที่ VIEW อ้างอิง
  • VIEW_METADATA: ทำให้ SQL Server ส่งเมตาดาต้าของ VIEW ให้ client (สำหรับ updatable view)

ตัวอย่าง

CREATE VIEW sp_htk AS
SELECT sanpham.id_sanpham, sanpham.ten_sanpham, hangtonkho.chatluong
FROM sanpham
INNER JOIN hangtonkho ON sanpham.id_sanpham = hangtonkho.id_sanpham
WHERE sanpham.id_sanpham >= 1000;

ใช้งาน VIEW:

SELECT * FROM sp_htk;

2. แก้ไข VIEW (ALTER VIEW)

แก้ไขโดยไม่ต้อง drop/create ใหม่

ALTER VIEW [schema_name.]view_name
[WITH { ENCRYPTION | SCHEMABINDING | VIEW_METADATA }]
AS
SELECT column_list
FROM table_name
[WHERE condition];

ตัวอย่าง

ALTER VIEW sp_htk AS
SELECT sanpham.ten_sanpham, hangtonkho.soluong
FROM sanpham
INNER JOIN hangtonkho ON sanpham.id_sanpham = hangtonkho.id_sanpham
WHERE sanpham.id_sanpham BETWEEN 500 AND 1000;

3. ลบ VIEW (DROP VIEW)

DROP VIEW view_name;
DROP VIEW sp_htk;

ประโยชน์ของ VIEW: ลดความซับซ้อนของ query ซ้ำ, ควบคุมสิทธิ์เข้าถึงคอลัมน์/แถวเฉพาะ, ซ่อนโครงสร้างตารางจริง