آموزش SQL Server – قسمت پانزدهم

آموزش SQL Server

در قسمت چهاردهم آموزش SQL Server ،دستورات Case در برنامه SQL را به شما آموزش دادیم. دراین قسمت  قصد داریم توابع (Functions) در SQL Server را به شما آموزش بدیم.

آموزش SQL Server – قسمت پانزدهم

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

 

توابع(Functions)

در این قسمت میخواهیم با توابع کار کنیم که یکی دیگر از امکاناتی هست که SQL در اختیار ما قرار داده ما در کل دو نوع تابع متفاوت در SQL داریم که حال میخواهیم با نوع SCALAR ان کار کنیم برای اینکار نیز مانند اموزش های قبل با رفتن به قسمت New Query و انتخاب بانکی که میخواهیم دستوراتمان به روی ان اعمال شود تابعی میسازیم.

شکل کلی تابع به صورت زیر میاشد

 

حال میخواهیم تابعی ساده بنویسیم.به مثال زیر توجه کنید :

 

در مثال بالا ما تابعی با نام SumAmanat با کلمات کلیدی Create Function ساخته ایم که برای ان پارامتری نیز در نظر گرفته ایم متغیری با نام @Code از نوع int در خط دوم نیز با کلمه کلیدی Return  نوع خرئجی تابع را مشخص کرده ایم و سپس کلمات کلیدی As و Begin و حال دستورات را مینویسیم که در اینجا ما متغیری با نام @Result از نوع int که محتوی ان یک کوری میباشد که تعداد همه چیز را در جدول امانت مشخص میکند جایی که فیلد کد کتاب در این جدول برابر پارامتر ورودی تابع باشد و سپس هم متغیر را به عنوان مقدار بازگشتی تابع با کلمه Return برمیگرداند و در اخر هم بدنه تابع را با کلمه End  میبندیم

پس از اجرای این دستورات عبارت Command(s) completed successfully را خواهید دید بدن معنی که این تابع ساخته شده و در مسیر Library/Programmability/Functions/Scalar-valued Functions ذخیره شده.

حال برای دیدن نتیجه این تابع دستورات زیر را میتوان نوشت

توابع در SQL Server
توابع در SQL Server

همانگونه که در تصویر فوق مشاهده میکنید ما دستورات Go و سپس یک کوری ساده که دو مقدار را به ما نمایش میدهد را نوشتیم که یکی از انها نام کتاب Name_Ketab  و دیگری dbo.SumAmanat که همان تابعی است که در بالا نوشتیم و به این نکته توجه داشته باشید که *زمان استفاده از UDF ها یا همان User Define Function ها که خودتان ساخته اید باید برای قید کردن نام تابع از عبارت dbo.  قبل ان استفاده کرد و با گزاشتن کاراکتر . نام توابعی که ساخته اید را مشاهده خواهید کرد* و میتوانید یکی را انتخاب کنید و پارامتر ورودی به ان دهید که در اینجا ما از فیلد Code_Ketab در جدول کتاب به عنوان پارامتر استفاده کرده ایم پس از هایلایت کردن و کلیک کردن دکمه Execute نتیجه فوق را مشاهده میکنید.

حال میخواهیم از نوع دیگر تابع با نام Multi Statement Function ها اسنا شویم که تفاوتی که با Scalar Function  ها یا همان UDF ها که قبلا گفتیم دارند این است که میتوانند چندین پارامتر ورودی داشته باشند و در نهایت میتوانند مقادیر خروجی بیش از یکی هم داشته باشند مثلا یک جدول را برگردانند.

برای اشنایی بیشتر با این نوع توابع به مثال زیر توجه کنید

 

در شبه کد فوق ما ابتدا تابعی با نام CalcRange(@min int, @max int) را با دو پارامتر ساخته ایم که طبق گفته های قبل بدنه و خروجی و… انرا تعیین کرده و کوری به عنوان نتیجه تابع ذکر کرده ایم که نتیجه ان رکوردهاییست که ای دی انها بین دو پارامتر ورودی @min و @max قرار دارد که به صورت جدول نیز میباشد همانگونه که مشاهده میکنید نوع خروجی از نوع Table گفته شده.

تابع دوم نیز دارای پارامترهای یکسان با تابع قبل است و خروجی ان نیز از نوع جدول و نتیجه کوری که میخواهد به عنوان خروجی رد کند نیز در اموزش های قبل توضیح  داده شده در واقع این کوری میگوید نام و جمع حاصل ضرب فیلد های تعداد و قیمت را از جداول امانت و کتاب انتخاب کن اگر شرایط زیر را داشته باشند که این شرایط نیز شامل یکی شرط جوین شدن دو جدول میباشد که در اموزش های قبل بسیار توضیح داده شده و دیگری میگوید اگر فیلد ای دی در جدول امانت جز نتیجه تابع قبل بود Select را انجام بده به عبارت دیگر رکورد هایی برای این تابع اتخاب شوند که ای دی انها جز خروجی تابع بالا باشند. و در اخر نیز Group By را انجام داده ایم که نتیجه براساس فیلدهای ذکر شده نمایش داده شود.

 

مدرس : خانم مهندس داودی نژاد

آموزش SQL Server – قسمت چهاردهم

 

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

مطالب مرتبط

نظر بدهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *