1. مهمان گرامی، جهت ارسال پست، دانلود و سایر امکانات ویژه کاربران عضو، ثبت نام کنید.
    بستن اطلاعیه

توابع درون ساخته sql

شروع موضوع توسط hector2141 ‏26/7/13 در انجمن SQL

  1. کاربر ارشد

    تاریخ عضویت:
    ‏6/9/12
    ارسال ها:
    14,318
    تشکر شده:
    2,702
    امتیاز دستاورد:
    0
    حرفه:
    daneshjo
    1 ) تابع Avg :

    تابع Avg برای محاسبه ميانگين اعداد موجود در يک فيلد به کار می رود . اين تابع اعداد را با هم جمع کرده و آنها را به طور اتوماتيک بر تعدادشان تقسیم می کند و نتيجه را به عنوان خروجی بر می گرداند .
    نکته : اين تابع بايد با فيلدهايی که داده آنها از نوع عددی است ، به کار رود .
    توجه : در تمام مثال های اين صفحه از داده های جداول زير استفاده می شود :

    [TABLE="class: ex"]
    [TR]
    [TD="class: header, colspan: 6"] Student Table [/TD]
    [/TR]
    [TR]
    [TD="class: header"] Student ID [/TD]
    [TD="class: header"] Name [/TD]
    [TD="class: header"] Family [/TD]
    [TD="class: header"] Major [/TD]
    [TD="class: header"] City [/TD]
    [TD="class: header"] Grade [/TD]
    [/TR]
    [TR]
    [TD="class: body"] 41252214 [/TD]
    [TD="class: body"] Ahmad [/TD]
    [TD="class: body"] Rezaee [/TD]
    [TD="class: body"] Hard Ware [/TD]
    [TD="class: body"] Tehran [/TD]
    [TD="class: body"] 18 [/TD]
    [/TR]
    [TR]
    [TD="class: body"] 10724113 [/TD]
    [TD="class: body"] Ehsan [/TD]
    [TD="class: body"] Amiri [/TD]
    [TD="class: body"] Soft Ware [/TD]
    [TD="class: body"] Karaj [/TD]
    [TD="class: body"] 14 [/TD]
    [/TR]
    [TR]
    [TD="class: body"] 10254861 [/TD]
    [TD="class: body"] Zahra [/TD]
    [TD="class: body"] Hosini [/TD]
    [TD="class: body"] Hard Ware [/TD]
    [TD="class: body"] Tehran [/TD]
    [TD="class: body"] 17 [/TD]
    [/TR]
    [TR]
    [TD="class: body"] 27365187 [/TD]
    [TD="class: body"] Sahar [/TD]
    [TD="class: body"] Ahmadi [/TD]
    [TD="class: body"] Soft Ware [/TD]
    [TD="class: body"] Bam [/TD]
    [TD="class: body"] 16 [/TD]
    [/TR]
    [TR]
    [TD="class: body"] 35654415 [/TD]
    [TD="class: body"] Hesam [/TD]
    [TD="class: body"] Razavi [/TD]
    [TD="class: body"] Soft Ware [/TD]
    [TD="class: body"] Tehran [/TD]
    [TD="class: body"] 19 [/TD]
    [/TR]
    [/TABLE]

    [TABLE="class: ex"]
    [TR]
    [TD="class: header, colspan: 4"] Courses Table [/TD]
    [/TR]
    [TR]
    [TD="class: header"] Course ID [/TD]
    [TD="class: header"] Co Title [/TD]
    [TD="class: header"] Credit [/TD]
    [TD="class: header"] Co Type [/TD]
    [/TR]
    [TR]
    [TD="class: body"] 1011 [/TD]
    [TD="class: body"] پايگاه داده [/TD]
    [TD="class: body"] 3 [/TD]
    [TD="class: body"] عملی [/TD]
    [/TR]
    [TR]
    [TD="class: body"] 1012 [/TD]
    [TD="class: body"] مباحث ويژه [/TD]
    [TD="class: body"] 3 [/TD]
    [TD="class: body"] عملی [/TD]
    [/TR]
    [TR]
    [TD="class: body"] 1013 [/TD]
    [TD="class: body"] زبان تخصصی [/TD]
    [TD="class: body"] 2 [/TD]
    [TD="class: body"] نطری [/TD]
    [/TR]
    [/TABLE]

    [TABLE="class: ex"]
    [TR]
    [TD="class: header, colspan: 5"] Selection Table [/TD]
    [/TR]
    [TR]
    [TD="class: header"] Student ID [/TD]
    [TD="class: header"] Course ID [/TD]
    [TD="class: header"] Term [/TD]
    [TD="class: header"] Year [/TD]
    [TD="class: header"] Grade [/TD]
    [/TR]
    [TR]
    [TD="class: body"] 41252214 [/TD]
    [TD="class: body"] 1011 [/TD]
    [TD="class: body"] 2 [/TD]
    [TD="class: body"] 85 - 86 [/TD]
    [TD="class: body"] 16 [/TD]
    [/TR]
    [TR]
    [TD="class: body"] 10724113 [/TD]
    [TD="class: body"] 1011 [/TD]
    [TD="class: body"] 2 [/TD]
    [TD="class: body"] 85 - 86 [/TD]
    [TD="class: body"] 14 [/TD]
    [/TR]
    [TR]
    [TD="class: body"] 41252214 [/TD]
    [TD="class: body"] 1012 [/TD]
    [TD="class: body"] 1 [/TD]
    [TD="class: body"] 85 - 86 [/TD]
    [TD="class: body"] 17 [/TD]
    [/TR]
    [TR]
    [TD="class: body"] 10724113 [/TD]
    [TD="class: body"] 1012 [/TD]
    [TD="class: body"] 1 [/TD]
    [TD="class: body"] 85 - 86 [/TD]
    [TD="class: body"] 11 [/TD]
    [/TR]
    [TR]
    [TD="class: body"] 10254861 [/TD]
    [TD="class: body"] 1013 [/TD]
    [TD="class: body"] 2 [/TD]
    [TD="class: body"] 85 - 86 [/TD]
    [TD="class: body"] 13 [/TD]
    [/TR]
    [TR]
    [TD="class: body"] 10254861 [/TD]
    [TD="class: body"] 1011 [/TD]
    [TD="class: body"] 2 [/TD]
    [TD="class: body"] 84 - 85 [/TD]
    [TD="class: body"] 8 [/TD]
    [/TR]
    [TR]
    [TD="class: body"] 27365187 [/TD]
    [TD="class: body"] 1012 [/TD]
    [TD="class: body"] 1 [/TD]
    [TD="class: body"] 84 - 85 [/TD]
    [TD="class: body"] 19 [/TD]
    [/TR]
    [TR]
    [TD="class: body"] 27365187 [/TD]
    [TD="class: body"] 1013 [/TD]
    [TD="class: body"] 1 [/TD]
    [TD="class: body"] 84 - 85 [/TD]
    [TD="class: body"] 16 [/TD]
    [/TR]
    [TR]
    [TD="class: body"] 35654415 [/TD]
    [TD="class: body"] 1011 [/TD]
    [TD="class: body"] 2 [/TD]
    [TD="class: body"] 84 - 85 [/TD]
    [TD="class: body"] 9 [/TD]
    [/TR]
    [TR]
    [TD="class: body"] 35654415 [/TD]
    [TD="class: body"] 1013 [/TD]
    [TD="class: body"] 2 [/TD]
    [TD="class: body"] 84 - 85 [/TD]
    [TD="class: body"] 17 [/TD]
    [/TR]
    [/TABLE]

    مثال : معدل نمرات دانشجويان را از جدول Students محاسبه کرده و در ستونی به نام معدل نمايش دهيد :
    [TABLE="class: ex"]
    [TR]
    [TD="class: header, colspan: 2"] مثال [/TD]
    [/TR]
    [TR]
    [TD="class: body"] Select Avg ( Students.Grade ) As معدل From Students [/TD]
    [TD="class: header"] کد [/TD]
    [/TR]
    [TR]
    [TD="class: body"] [TABLE="class: ex, width: 200"]
    [TR]
    [TD="class: header"] معدل [/TD]
    [/TR]
    [TR]
    [TD="class: body, align: center"] 16.8 [/TD]
    [/TR]
    [/TABLE]
    [/TD]
    [TD="class: header"] خروجی [/TD]
    [/TR]
    [/TABLE]
    مثال : معدل نمرات دانشجويان رشته نرم افزار را در درس پايگاه داده محاسبه کرده و در ستونی به نام معدل نمايش دهيد :
    [TABLE="class: ex"]
    [TR]
    [TD="class: header, colspan: 2"] مثال [/TD]
    [/TR]
    [TR]
    [TD="class: body"] Select Avg ( Selection.Grade ) As معدل
    From Students,Selection,Courses
    Where Students.Student ID = Selection.StudentID
    AND Selection.Course ID = Courses.Course ID
    AND Major = 'Soft'
    AND CoTitle = 'پايگاه داده ' ; [/TD]
    [TD="class: header"] کد [/TD]
    [/TR]
    [TR]
    [TD="class: body"] [TABLE="class: ex, width: 200"]
    [TR]
    [TD="class: header"] معدل [/TD]
    [/TR]
    [TR]
    [TD="class: body, align: center"] 11.5 [/TD]
    [/TR]
    [/TABLE]
    [/TD]
    [TD="class: header"] خروجی [/TD]
    [/TR]
    [/TABLE]

    [HR][/HR] تابع Sum :
    تابع Sum ، مجموع مقادير اعداد در يک فيلد را محاسبه کرده و به عنوان خروجی بر می گرداند .
    نکته : اين تابع بايد با فيلدهايی که داده آنها از نوع عددی است ، به کار رود .
    مثال : از جدول انتخاب واحد ( Selection ) مجموع نمرات دانشجويان را در درس پايگاه داده با کد 1011 را محاسبه کنيد :
    [TABLE="class: ex"]
    [TR]
    [TD="class: header, colspan: 2"] مثال [/TD]
    [/TR]
    [TR]
    [TD="class: body"] Select Sum ( Selection.Grade ) As مجموع نمرات پايگاه داده
    From Selection,Courses
    AND Selection.Course ID = Courses.Course ID
    AND Selection.Course ID = 1011 ; [/TD]
    [TD="class: header"] کد [/TD]
    [/TR]
    [TR]
    [TD="class: body"] [TABLE="class: ex, width: 200"]
    [TR]
    [TD="class: header"] مجموع نمرات پايگاه داده [/TD]
    [/TR]
    [TR]
    [TD="class: body, align: center"] 47 [/TD]
    [/TR]
    [/TABLE]
    [/TD]
    [TD="class: header"] خروجی [/TD]
    [/TR]
    [/TABLE]
    مثال : از جدول انتخاب واحد ، مجموع نمرات دانشجو حسام رضوی را محاسبه کنيد :
    [TABLE="class: ex"]
    [TR]
    [TD="class: header, colspan: 2"] مثال [/TD]
    [/TR]
    [TR]
    [TD="class: body"] Select Sum ( Selecton.Grade ) As مجموع نمرات حسام رضوی
    From Students,Selection
    Where Students.Student ID = Selection.StudentID
    AND Name = ' Hesam '
    AND Family = ' Razavi ' ; [/TD]
    [TD="class: header"] کد [/TD]
    [/TR]
    [TR]
    [TD="class: body"] [TABLE="class: ex, width: 200"]
    [TR]
    [TD="class: header"] مجموع نمرات حسام رضوی [/TD]
    [/TR]
    [TR]
    [TD="class: body, align: center"] 26 [/TD]
    [/TR]
    [/TABLE]
    [/TD]
    [TD="class: header"] خروجی [/TD]
    [/TR]
    [/TABLE]

    [HR][/HR] 3 ) تابع Min :
    اين تابع ، کمترين مقدار موجود در بين مقادير فيلدهای يک ستون را بر می گرداند .
    نکته : اين تابع با ستون هايی که داده آنها از نوع عددی يا حروفی باشد ، می تواند به کار رود . در فيلدها با مقادير عددی تابع کوچکترين عدد و در فيلدها با مقادير متنی ، تابع کلمه ای که به ترتيب حروف الفبا از آ تا ی در فارسی و A تا Z در انگلِسی در بالاترين رده باشد ، را بر می گرداند .
    مثال : اولين نام خانوادگی دانشجویان را از جدول Students نمايش دهيد :
    [TABLE="class: ex"]
    [TR]
    [TD="class: header, colspan: 2"] مثال [/TD]
    [/TR]
    [TR]
    [TD="class: body"] Select Min ( Family ) As Family From Students [/TD]
    [TD="class: header"] کد [/TD]
    [/TR]
    [TR]
    [TD="class: body"] [TABLE="class: ex, width: 200"]
    [TR]
    [TD="class: header"] Family [/TD]
    [/TR]
    [TR]
    [TD="class: body, align: center"] Ahamdi [/TD]
    [/TR]
    [/TABLE]
    [/TD]
    [TD="class: header"] خروجی [/TD]
    [/TR]
    [/TABLE]
    مثال : کمترين نمره دانشجویان را از جدول Selection نمايش دهيد :
    [TABLE="class: ex"]
    [TR]
    [TD="class: header, colspan: 2"] مثال [/TD]
    [/TR]
    [TR]
    [TD="class: body"] Select Min ( Grade ) As کمترين نمره From Selection [/TD]
    [TD="class: header"] کد [/TD]
    [/TR]
    [TR]
    [TD="class: body"] [TABLE="class: ex, width: 200"]
    [TR]
    [TD="class: header"] کمترين نمره [/TD]
    [/TR]
    [TR]
    [TD="class: body, align: center"] 8 [/TD]
    [/TR]
    [/TABLE]
    [/TD]
    [TD="class: header"] خروجی [/TD]
    [/TR]
    [/TABLE]

    [HR][/HR] 4 ) تابع Max :
    اين تابع ، بيشترين مقدار موجود در بين مقادير فيلدهای يک ستون را بر می گرداند .
    نکته : اين تابع با ستون هايی که داده آنها از نوع عددی يا حروفی باشد ، می تواند به کار رود . در فيلدها با مقادير عددی تابع بزگترين عدد و در فيلدها با مقادير متنی ، تابع کلمه ای که به ترتيب حروف الفبا از آ تا ی در فارسی و A تا Z در انگلِسی در آخرين رده باشد ، را بر می گرداند .
    مثال : آخرين نام خانوادگی دانشجویان را از جدول Students نمايش دهيد :
    [TABLE="class: ex"]
    [TR]
    [TD="class: header, colspan: 2"] مثال [/TD]
    [/TR]
    [TR]
    [TD="class: body"] Select Max ( Family ) As Family From Students [/TD]
    [TD="class: header"] کد [/TD]
    [/TR]
    [TR]
    [TD="class: body"] [TABLE="class: ex, width: 200"]
    [TR]
    [TD="class: header"] Family [/TD]
    [/TR]
    [TR]
    [TD="class: body, align: center"] Rezaee [/TD]
    [/TR]
    [/TABLE]
    [/TD]
    [TD="class: header"] خروجی [/TD]
    [/TR]
    [/TABLE]
    مثال : بيشترين نمره دانشجویان را از جدول Selection نمايش دهيد :
    [TABLE="class: ex"]
    [TR]
    [TD="class: header, colspan: 2"] مثال [/TD]
    [/TR]
    [TR]
    [TD="class: body"] Select Max ( Grade ) As بيشترين نمره From Selection [/TD]
    [TD="class: header"] کد [/TD]
    [/TR]
    [TR]
    [TD="class: body"] [TABLE="class: ex, width: 200"]
    [TR]
    [TD="class: header"] بيشترين نمره [/TD]
    [/TR]
    [TR]
    [TD="class: body, align: center"] 19 [/TD]
    [/TR]
    [/TABLE]
    [/TD]
    [TD="class: header"] خروجی [/TD]
    [/TR]
    [/TABLE]

    [HR][/HR] 5 ) تابع First :
    اين تابع مقدار اولين رکورد را در يک فيلد بر می گرداند . ترتيب در اينجا ، همان ترتیب قرار گيری رکوردها در جدول است .
    [HR][/HR] 6 ) تابع Last :
    اين تابع مقدار آخرين رکورد را در يک فيلد بر می گرداند . ترتيب در اينجا ، همان ترتیب قرار گيری رکوردها در جدول است .
    [HR][/HR] 7 ) تابع Count :
    اين تابع تعداد سطرهای موجود در يک فيلد را شمرده و مقدار آنرا بر می گرداند . به اين تابع ، تابع سطر شمار هم می گويند .
    مثال : اين تابع فيلدهايی که مقدار آنها خالی يا تکراری باشد را نمی شمارد . برای شمارش کليه فيلدها ( حتی تکراری ) بايد قبل از نام ستون در دستور Count عبارت Distinct ذکر شود .
    مثال : تعداد درس هايي که دانشجو با شماره دانشجويي 35654415 قبول شده را بدهيد :
    [TABLE="class: ex"]
    [TR]
    [TD="class: header, colspan: 2"] مثال [/TD]
    [/TR]
    [TR]
    [TD="class: body"] Select Count ( Course ID ) AS تعداد دروس
    From Selection
    Where Student ID = 35654415
    AND Grade > 10 ; [/TD]
    [TD="class: header"] کد [/TD]
    [/TR]
    [TR]
    [TD="class: body"] [TABLE="class: ex, width: 200"]
    [TR]
    [TD="class: header"] تعداد دروس [/TD]
    [/TR]
    [TR]
    [TD="class: body, align: center"] 1 [/TD]
    [/TR]
    [/TABLE]
    [/TD]
    [TD="class: header"] خروجی [/TD]
    [/TR]
    [/TABLE]
    مثال : تعداد دانشجويانی که درس پايگاه داده را انتخاب کرده اند را اعلام کنيد :
    [TABLE="class: ex"]
    [TR]
    [TD="class: header, colspan: 2"] مثال [/TD]
    [/TR]
    [TR]
    [TD="class: body"] Select Count ( DISTINCT Selection.Course ID ) AS تعداد دانشجويان
    From Selection , Courses
    Where Selection.Course ID = Courses.Course ID
    AND CoTitle = ' پايگاه داده ' ;
    [/TD]
    [TD="class: header"] کد [/TD]
    [/TR]
    [TR]
    [TD="class: body"] [TABLE="class: ex, width: 200"]
    [TR]
    [TD="class: header"] تعداد دانشجويان [/TD]
    [/TR]
    [TR]
    [TD="class: body, align: center"] 4 [/TD]
    [/TR]
    [/TABLE]
    [/TD]
    [TD="class: header"] خروجی [/TD]
    [/TR]
    [/TABLE]

    [HR][/HR]