View ها در Sql Server
دوشنبه 27 مهر 1394view ها زیرمجموعه ای از جداول بوده و بسیار به جدول شبیه می باشند. view ها دارای حافظه نیستند و به همین دلیل آنها را جدول مجازی هم نامگذاری کرده اند.
تفاوت اصلی بین جداول و View ها :
جدول می تواند منحصرا و به طور جداگانه ایجاد شود اما View نمی تواند منحصرا ایجاد شود و وابسته به یک یا چند جدول دیگر می باشد.
جدول فضا و حافظه را اشغال می کند ولی View یک جدول مجازی بوده و حافظه ای اشغال نمی کند.
جدول نقطه پایانی بوده ولی View یک لایه میانی بین کاربر و بانک اطلاعاتی می باشد.
جدول همیشه شامل داده ها می باشد اما View تنها در زمان اجرا شامل داده می باشد.
View ها دارای دو نوع می باشند :
Simple View (ویو ساده)
Complex View (ویو پیچیده)
View ساده : ویو ای می باشد که برای یک انتخاب ساده به کار می رود Simple View گفته می شود.
View پیچیده : ویو ای می باشد که شامل Orderby و Group by و Join می شود.
همانطور که گفته شد یک ویو یک رابط میان کاربر و جدول اصلی بانک می باشد.
نمونه یک View ساده (Simple View)
create view myview as select EmpId,Name,ContactNo from tbl_empdetails select * from myview
View پیچیده
نمونه
create view mycomplexview as select e.EmpId,e.Name,e.ContactNo,l.Location from tbl_empdetails e inner join tbl_Location l on e.EmpId=l.EmpId select * from mycomplexview
در اینجا یک View پیچیده ایجاد شده است. این کار بوسیله Join کردن دو جدول زیر شکل گرفته است.
جدول tbl_empdetails و جدول tbl_Location
در زیر دو جدول را مشاهده می نمایید.
جدول tbl_empdetails
جدول tbl_Location
و این View می باشد :
select * from mycomplexview
بنابراین به این روش به سادگی می توان View پیچیده ایجاد نمود.
حال سوال اصلی این است که آیا View می تواند روی جدول اصلی تاثیرگذار باشد؟
به این معنی که زمانی که ما عملیات درج و ویرایش روی View انجام می دهیم آیا جدول اصلی می تواند تغییری کند.
جواب بله است.
در زیر می بینید که چگونه این کار انجام می شود.
همانطور که می بینید این روی جدول اصلی تاثیر گذاشته است.
بنابراین این امر به وضوح نشان می دهد که بروزرسانی و ویرایش یک View ساده (Simple View) روی جدول اثر مستقیم دارد.
View پیچیده مجموعه ای از ستونهای 2 یا چند جدول است. در این مورد آیا ممکن است View پیچیده را بروزرسانی نمود.
جواب بله است و می توان این کار را از طریق چند راه انجام داد.
حال مانند زیر View پیچیده را آپدیت می کنیم.
بنابراین دیدید که جدول اصلی هم آپدیت شده است.
- SQL Server
- 4k بازدید
- 6 تشکر