SQL VIEW (มุมมอง)

มุมมองเป็นตารางที่แสดง

บทที่นี้มีเนื้อหาเกี่ยวกับวิธีที่จะสร้าง ปรับปรุง และลบมุมมอง

คำสั่ง SQL CREATE VIEW

อะไรคือมุมมอง?

ใน SQL มุมมองเป็นตารางที่แสดงผลของกลุ่มข้อมูลที่สร้างจาก SQL การสั่ง

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

หมายเหตุ:การออกแบบและโครงสร้างของฐานข้อมูลจะไม่ได้รับผลกระทบจากฟังก์ชัน การใช้เงื่อนไข หรือ การสร้างโซนของมุมมอง

SQL CREATE VIEW ศัพท์

CREATE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition

หมายเหตุ:มุมมองเสมอไปแสดงข้อมูลที่ปัจจุบัน ในทุกครั้งที่ผู้ใช้ค้นหามุมมอง มอเตอร์ฐานข้อมูลจะสร้างข้อมูลใหม่ด้วย SQL การสั่ง

ตัวอย่าง SQL CREATE VIEW

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

ฐานข้อมูล Northwind มีมุมมองที่ถูกติดตั้งโดยค่าเรferential บางตัว มุมมอง "Current Product List" จะแสดงสินค้าที่ยังใช้อยู่ทั้งหมดในตาราง Products มุมมองนี้สร้างด้วย SQL ต่อไปนี้:

CREATE VIEW [Current Product List] AS
SELECT ProductID,ProductName
FROM Products
WHERE Discontinued=No

เราสามารถค้นหามุมมองดังกล่าว:

SELECT * FROM [Current Product List]

มุมมองอีกตัวอย่างของฐานข้อมูล Northwind จะเลือกสินค้าทั้งหมดในตาราง Products ที่หน่วยราคาขายสูงกว่าหน่วยราคาขายเฉลี่ย:

CREATE VIEW [Products Above Average Price] AS
SELECT ProductName,UnitPrice
FROM Products
WHERE UnitPrice>(SELECT AVG(UnitPrice) FROM Products) 

เราสามารถค้นหามุมมองดังกล่าวได้เช่นนี้:

SELECT * FROM [Products Above Average Price]

อีกตัวอย่างหนึ่งของมุมมองที่มาจากฐานข้อมูล Northwind จะคำนวณจำนวนขายทั้งหมดของแนวสินค้าในปี 1997 โปรดสังเกตว่ามุมมองนี้จะเลือกข้อมูลจากมุมมองที่ชื่อว่า "Product Sales for 1997":

CREATE VIEW [Category Sales For 1997] AS
SELECT DISTINCT CategoryName,Sum(ProductSales) AS CategorySales
FROM [Product Sales for 1997]
GROUP BY CategoryName 

เราสามารถค้นหามุมมองดังกล่าวได้เช่นนี้:

SELECT * FROM [Category Sales For 1997]

เราก็สามารถเพิ่มเงื่อนไขในคำสั่งค้นหา ตอนนี้เราแค่ต้องการดูยอดขายทั้งหมดของประเภท "Beverages":

SELECT * FROM [Category Sales For 1997]
WHERE CategoryName='Beverages'

SQL ปรับปรุงมุมมอง

คุณสามารถใช้ศัพท์ด้านล่างนี้เพื่อปรับปรุงมุมมอง:

SQL CREATE OR REPLACE VIEW ศัพท์
CREATE OR REPLACE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition

ตอนนี้ เราต้องการเพิ่มคอลัมน์ "Category" ในมุมมอง "Current Product List" จาก SQL ปรับปรุงมุมมองดังนี้:

CREATE VIEW [Current Product List] AS
SELECT ProductID,ProductName,Category
FROM Products
WHERE Discontinued=No

SQL ลบมุมมอง

คุณสามารถใช้คำสั่ง DROP VIEW มาลบมุมมอง

SQL DROP VIEW ศัพท์

DROP VIEW view_name