VIEW (الرؤية) SQL

المنظور هو جدول مرئي.

هذا الفصل يشرح كيفية إنشاء، تحديث، وإزالة المنظور.

جملة SQL CREATE VIEW

ما هو المنظور؟

في SQL، المنظور هو عرض لنتائج جملة SQL.

المنظور يحتوي على سطور وعمود، مثل جدول حقيقي. الحقول في المنظور هي حقول من جدول حقيقي في قاعدة البيانات الواحدة أو أكثر. يمكننا إضافة وظائف SQL، WHERE، JOIN إلى المنظور، ويمكننا أيضًا تقديم البيانات، كما لو كانت تأتي من جدول واحد.

ملاحظة:تصميم قاعدة البيانات والهيكل لن يؤثر عليه وظائف المنظور، أو جملة WHERE أو JOIN.

قواعد النحو لـ SQL CREATE VIEW

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

ملاحظة:المنظورات دائمًا ما تظهر البيانات الأحدث. كلما قام المستخدم ببحث في المنظور، كانت قاعدة البيانات تعيد بناء البيانات باستخدام جملة SQL.

مثال على SQL CREATE VIEW

يمكن استخدام المنظور من داخل استعلام، أو من داخل عملية تخزين، أو من داخل منظور آخر. من خلال إضافة وظائف، وJOIN، إلخ إلى المنظور، يمكننا تقديم البيانات التي نريد تقديمها للمستخدمين بشكل دقيق.

قاعدة البيانات نموذج Northwind تحتوي على بعض المنظورات المدمجة. المنظور "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

يمكنك استخدام النحو التالي لتحديث الرؤية:

نحوية CREATE OR REPLACE VIEW لـ SQL
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 لإزالة الرؤية.

نحوية DROP VIEW لـ SQL

DROP VIEW view_name