View یک جدول مجازی است.
این فصل به شما نشان می دهد که چگونه یک View را ایجاد،حذف و یا تغییر دهید.
دستور CREATE VIEW در SQL :
در SQL یک View یک جدول مجازی است که نتیجه حاصل از عبارات و دستورات SQL می باشد.
یک view شامل سطر و ستونهایی دقیقا شبیه یک جدول واقعی است. فیلدها در یک View فیلدهایی هستند که از یک یا چند جدول واقعی در پایگاه داده گرفته شده اند.
شما می توانید توابع SQLو همچنین عبارات WHERE و JOIN را به یک View اضافه کنید و داده های نتیجه را به گونه ای نشان دهید که گویی همگی از یک جدول آورده شده اند.
فرم دستور CREATE VIEW:
CREATE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition
نکته: یک View همیشه داده های به روز شده (up-to-date) را نشان می دهد! موتور یک پایگاه داده هر زمانی که کاربر در خواست view کند داده ها را بازسازی می نماید.
مثال استفاده از CREATE VIEW در SQL :
اگر پایگاه داده Northwind را دارید شما می توانید چندین view را که به طور پیش فرض روی آن نصب شده است را ببینید.
View با نام Current Product List، لیست محصولات جاری (محصولاتی که تولید آنها متوقف نشده است) را از جدول “Products” نشان می دهد. این view توسط دستور زیر ایجاد می گردد:
CREATE VIEW [Current Product List] AS
SELECT ProductID,ProductName
FROM Products
WHERE Discontinued=No
می توانیم View فوق را به صورت زیر فراخوانی کنیم :
SELECT * FROM [Current Product List]
مثال دیگری از View در پایگاه داده Northwind، تمام محصولاتی را که در جدول “Products” قیمت واحدشان بزرگتر از میانگین قیمت هاست انتخاب می کند:
CREATE VIEW [Products Above Average Price] AS
SELECT ProductName,UnitPrice
FROM Products
WHERE UnitPrice>(SELECT AVG(UnitPrice) FROM Products)
می توانیم view فوق را به صورت زیر فراخوانی کنیم:
SELECT * FROM [Products Above Average Price]
مثال دیگری از View در پایگاه داده Northwind، فروش کل را برای هر دسته از محصولات در سال 1997 محاسبه می کند. توجه کنید که اینview داده هایش را از view ی دیگری که “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
می توانیم view فوق را به صورت زیر فراخوانی کنیم:
SELECT * FROM [Category Sales For 1997]
همچنین می توانیم یک شرط روی Query تعریف کنیم. اکنون می خواهیم فروش کل محصولاتی که در گروه “Beverages” هستند را ببینیم:
SELECT * FROM [Category Sales For 1997]
WHERE CategoryName='Beverages'
به روز رسانی یک View :
می توانیم یک View را توسط دستور زیر به روز رسانی کنیم :
فرم دستور CREATE OR REPLACE VIEW در SQL:
CREATE OR REPLACE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition
می خواهیم ستون “Category” را به view ی “Current Product List” اضافه کنیم. به وسیله دستور زیر view را به روز رسانی می کنیم:
CREATE VIEW [Current Product List] AS
SELECT ProductID,ProductName,Category
FROM Products
WHERE Discontinued=No
حذف یک View در SQL :
می توانید یک view را به وسیله دستور DROP VIEW حذف کنید.
فرم دستور DROP VIEW در SQL :