آموزش ساخت تابع در sql اس کیو ال تابع فاکتوریل در sql

آموزش ساخت تابع توابع در sql اس کیو ال تابع فاکتوریل در sql

آموزش کار با sql اس کیو ال

در این بخش از آموزش کار با sql به ساخت تابع در sql و بکارگیری آنها در کوئری ها می پردازیم.

برای مشاهده تابع های ساخته شده در اس کیو ال به مسیر زیر در sql وارد شوید:

آموزش ساخت تابع در sql

کلیه توابع که در sql ساخته اید در این بخش قرار داده میشوند.

همانطور که در عکس بالا مشاهده میکنید چهار نوع تابع در اس کیو ال وجود دارند :

table valued functions : توابعی که خروجی آنها جدول هستند

scalar valued functions : توابعی که خروجی آنها یک رشته یا عدد هست ( اسکالر )

aggregate functions : توابع تجمعی

system functions : توابع سیستمی

در این بخش آموزش کا و ساخت تابع در sql تمرکز بر روی دو نوع اول میباشد.

ساخت تابع در sql :

ساختار تعریف و ایجاد تابع در sql بصورت زیر تعریف میشود:


Create Function   پارامترهای ورودی) نام تابع)
Returns نوع مقدار برگشتی
AS 
Begin
دستورات
    Return مقدار بازگشتی
End


توابع که کاربر اقدام به ایجاد آنها میکند User define function نام دارند.

مثال 1 : تابع فاکتوریل در sql 


Create Function Fact (@n TinyInt)
Returns BigInt
AS
Begin
Declare @RtnValue BigInt
Set @RtnValue = 1
while (@n>1)
begin
   Set @RtnValue = @rtnvalue * @n
   set @n = @n-1
end
Return @RtnValue
END

برای استفاده از توابع درونی باید قبل از نام تابع از کلمه dbo استفاده کنیم.

به اجرای تابع بالا در زیر دقت کنید:


print dbo.fact(4)

استفاده از تابع در پراسیجر ها در sql :

میتوانیم از توابع در ساخت پراسجر در sql و کوئری ها نیز استفاده کنیم .

مثال 2 :برای دیتابیس کارمندان تابعی بنویسید که تاریخ تولد کارمند را دریافت کرده و سن آن را محاسبه و در جدول نمایش دهد:


create function Old( @DOB nvarchar(10))
returns int
as
begin
declare @n int
set @n= convert(int,left( @dob,4))
return 1397-@n
end

در مثال بالا از تابع convert و left استفاده شده است. از تابع بالا میتوانیم بصورت زیر در پراسیجر و کوئری های استفاده کنیم:


select *,dbo.old(DateOfBirth ) from tblEmployee

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

اجرای تابع در sql اس کیو ال

این دو تابع ایجاد شده در sql در قسمت scaler valued functions ذخیره و نمایش داده میشوند.

نکته : اگر در کنار دستور return در توابع از دستور select استفاده کنید این توابع در بخش table valued functions نمایش داده میشوند.

دانلود کوئری های مثالهای آموزش ساخت تابع در sql