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