در قسمت هشتم آموزش SQL Server ، انواع join ها (INNER JOIN ،LEFT/RIGHT OUTER JOIN) را به شما آموزش دادیم.دراین قسمت قصد داریم کدنویسی View ها و تعریف متغیر در SQL Server را به شما آموزش بدیم.
در این بخش میخواهیم کدنویسی View ها را انجام دهیم بدین معنی که با کدنویسی و انجام اعمال خاصی یک View ایجاد کنیم در اموزش های قبل با قسمت View ها اشنا شدیم و کار با انهارا یاد گرفتیم اما کدنویسی چندانی نکردیم حال میخواهیم با کدنویسی به نمای View ها برویم. به مثال زیر دقت کنید
پس از کلیک کردن گزینه New Query و وارد شدن به قسمت کدنویسی کدهای زیر را مینویسیم
Create View KetabList As Select Code_Ketab,tedad from Tbl_Ketab
کدهای بالا یک View با دستور مشخصی ایجاد میکند.همانگونه که مشاهده میکنید دستورات Creat View برای ایجاد View جدید میباشد سپس باید نام دلخواهی برای ان ایجاد کرد و بعد کلمه کلیدی As و سپس نیز نیز دستوراتی که مشخص میکند چه داده هایی در ویو نمایش داده شود که اینجا ما کد کتابها همراه با تعدادشان را مشخص کرده ایم.
پس از نوشتن کدهای فوق و کلیک کردن دکمه Execute یک View جدید برای شما ایجاد خواهد شد که میتوان انرا در زیر فولدر View دیتابیس خود مشاهده کرد که اگر احیانا انرا ندید باید دکمه Refresh را کلیک کرد یا دکمه میانبر F5 را زد سپس با کلیک راست کردن روی View ایجاد شده و کلیک کردن گزینه Design وارد محیط زیر میشوید و میتوانید نتیجه را کاملتر ببینید
همانگونه که در تصویر فوق مشاهده میکنید ما پس از وارد شدن به قسمت Design مربوط به View که ساختیم با تصویر بالا مواجه میشویم که جدولی که انتخاب کرده ایم و کدهایی ک نوشته ایم را به ما نمایش میدهد حال میتوان با هایلایت کردن کدی که نوشته ایم و کلیک کردن دکمه Execute نتیجه را نیز مشاهده کرد.
که حتی میتوان در همین محیط کدنویسی انجام دهیم و انرا اجرا کنیم.
حال میخواهیم مثالی دیگر را امتحان کنیم که بتوان در ان از View که قبلا ایجاد کرده ایم نیز استفاده کنیم
Create View tedadketab as select tedad as Tedad from Tbl_Ketab Create View Ketabmax as select MAX(tedad) as MaxCount From tedadketab
در تکه کد بالا ما دو ویو ساخته ایم که View اول تنها وظیفه انتخاب و نشان دادن فیلد تعداد ا زجدول کتاب را دارد و View دوم بزرگترین مقدار درون فیلد تعداد را از ویو tedadketab که ویوییست که در بالا تعریف شده را برمیگرداند.بدین صورت است که میتوان از ویو هایی که میسازیم در ویو های دیگر استفاده کنیم. طرز اجرای ان نیز بدین صورت است که ایتدا View اول را هایلایت کرده و اجرا میکنیم سپس View دوم را اجرا میکنیم و همانگونه که گفته شد در قسمت Design مربوط به هر View میتوان نتیجه را با جزییات بیشتر مشاهده کرد.
در مثال زیر نیز میخواهیم از شرطی درون ویوها استفاده کنیم
Create View MaxPrice AS select Tbl_Ketab.Name_Ketab from Tbl_Ketab where Tbl_Ketab.Code_Ketab in )select Tbl_Ketab.Code_Ketab from Tbl_Ketab group by Code_Ketab having AVG(Qeymat) > 50 )
درکد بالا ابتدا ما View با نام MaxPrice ایجاد کرده ایم سپس فیلد نام کتاب از جدول کتاب را انتخاب کرده ایم و در ادامه گفته شده نام کتاب هایی را به ما نمایش بده که کد انها دارای شرط ذکر شده باشند که شرط نیز میگوید فیلد کدکتاب از جدول کتاب را انتخاب کن به شرطی که میانگین فیلد قیمتشان بیش از ۵۰ باشد .
به عبارتی دیگر میتوان گفت کل این عبارات میگویند نام کتابهایی را به ما نمایش بده که فیلد قیمت کد انها میانگینشان بیش از ۵۰ باشد که در نتیجه نیز نتیجه مطلوب را به ما خواهد داد.
حال میخواهیم نحوه تعربف و کار با متغیرهارا بررسی کنیم.شکل کلی تعریف متقیر بدین صورت میباشد
Declare نام متغیر@ نوع متغیر= مقدار اولیه
همانگونه که میبینید از کلمه کلیدی Declare استفاده میکنیم و به علامت @ قبل از نام متغیر نیز دقت کنید به مثال زیر دقت کنید
Declare @var int=10 Select @var as Variable
در مثال بالا ما متغیری با نام var@ را از نوع int و مقدار اولیه ۱۰ تعریف کرده ایم و همچنین در اخر نیز نام Variable را برا یان در نطر گرفته ایم.
برای نشان دادن مقدار ان نیز از دستور Select استفاده کرده ایم که پس از نوشتن این دستور با کلیک کردن دکمه Execute یا زدن دکمه F5 میتوان نتیجه را مشاهده کرد که نتیجه نیز بسیار ساده میباشد و فیلدی با مقدار ۱۰ و نام Variable را به ما نمایش میدهد.
به مثال زیر توجه کنید
Declare @var int=10 Select @var as Variable Set @var += 10 Select @var
در مثال ساده فوق ما همان متغیری که در مثال قبل تعریف کرده ایم را با کلمه کلیدی Set مقدار ۱۰ را به ان اضافه کرده ایم و در اخر نیز انرا نمایش میدهیم در نتیجه نیز شما ابتدا مقدار اولیه متغیر که ۱۰ میباشد را مشاهده میکنید سپس مقداری که به ان اضافه شده یعنی ۲۰ را مشاهده میکنید.
حال در مثال زیر میخواهیم از متغیر ها در جداول باتم استفاده کنیم
Declare @Total int =0 Select @Total=(select SUM(tedad) from Tbl_Ketab) Select SUM(tedad)*100 / @Total as Present from Tbl_Ketab Group by Code_Ketab
در مثال فوق ما میخواهیم درصد تعداد کتاب ها را مشاهده کنیم برای اینکار ابتدا متغیری با نام Total با مقدار اولیه صفر تعریف کرده ایم سپس در دستور Select جمع فیلد تعداد در جدول کتاب را انتخاب کرده ایم و مقدار نهایی را در متغیر ریخته ایم و در دستور Select دوم باز ابتدا جمع فیلد تعداد را بدست اورده ایم و انرا در ۱۰۰ ضرب کرده ایم و سپس انرا تقسیم بر متغیر کرده ایم و برایش نامی تعریف کرده ایم و در اخر نیز گفته شده که از کدام جدول فیلد تعداد را بردارد و سپس نیز گفته شده که نتایج را براساس کدکتاب نمایش دهد و حتی میتوان در انتها نیز دستور Order By Present Desc را بنویسیم تا نتایج را به صورت نزولی نمایش دهد.