View ها در Sql Server

دوشنبه 27 مهر 1394

view ها زیرمجموعه ای از جداول بوده و بسیار به جدول شبیه می باشند. view ها دارای حافظه نیستند و به همین دلیل آنها را جدول مجازی هم نامگذاری کرده اند.

View ها در Sql Server

تفاوت اصلی بین جداول و 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 پیچیده را آپدیت می کنیم.

بنابراین دیدید که جدول اصلی هم آپدیت شده است.

برنامه نویسان

نویسنده 3355 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید