توابع SQL

SQL دارای بسیاری از توابع داخلی برای شمارش و محاسبه است.

قوانین دستور زبان

قوانین دستور زبان توابع داخلی SQL به صورت زیر است:

SELECT function(ستون) FROM جدول

نوع توابع

در SQL، انواع پایه و گونه‌های مختلفی از توابع وجود دارد. نوع پایه توابع عبارت است از:

  • توابع جمع‌آوری
  • توابع سکالار

توابع جمع‌آوری (Aggregate functions)

عملیات توابع جمع‌آوری به مجموعه‌ای از مقادیر اشاره دارد و یک مقادیر تنها را بازمی‌گرداند.

توضیح:اگر در لیست پروژه‌های SELECT در بسیاری از دیگر عبارات از SELECT استفاده شود، این SELECT باید با استفاده از عبارت GROUP BY انجام شود!

جداول "Persons" (در بیشتر مثال‌ها استفاده شده است)

نام سن
Adams, John 38
Bush, George 33
Carter, Thomas 28

توابع جمع‌آوری در MS Access

توابع توضیحات
AVG(column) بازگشت میانگین یک ستون
COUNT(column) بازگشت تعداد ردیف‌های یک ستون (بدون NULL)
COUNT(*) بازگشت تعداد ردیف‌های انتخاب‌شده
FIRST(column) بازگشت ارزش اولین رکورد در حوزه مشخص شده
LAST(column) بازگشت ارزش آخرین رکورد در حوزه مشخص شده
MAX(column) بازگشت بیشترین مقدار یک ستون
MIN(column) بازگشت کمترین مقدار یک ستون
STDEV(column)  
STDEVP(column)  
SUM(column) بازگشت جمع کل یک ستون
VAR(column)  
VARP(column)  

توابع جمع‌آوری در SQL Server

توابع توضیحات
AVG(column) بازگشت میانگین یک ستون
BINARY_CHECKSUM  
CHECKSUM  
CHECKSUM_AGG  
COUNT(column) بازگشت تعداد ردیف‌های یک ستون (بدون NULL)
COUNT(*) بازگشت تعداد ردیف‌های انتخاب‌شده
COUNT(DISTINCT column) بازگشت تعداد نتایج متفاوت
FIRST(column) بازگشت مقدار اولین رکورد در حوزه معین شده (SQLServer2000 پشتیبانی نمی‌کند)
LAST(column) بازگشت مقدار آخرین رکورد در حوزه معین شده (SQLServer2000 پشتیبانی نمی‌کند)
MAX(column) بازگشت بیشترین مقدار یک ستون
MIN(column) بازگشت کمترین مقدار یک ستون
STDEV(column)  
STDEVP(column)  
SUM(column) بازگشت جمع کل یک ستون
VAR(column)  
VARP(column)  

توابع سکالار

عمل توابع سکالار به یک مقدار خاص معطوف شده و یک مقدار ساده بر اساس مقدار ورودی بازمی‌گرداند.

توابع سکالار در MS Access

توابع توضیحات
UCASE(c) یک حوزه را به صورت بزرگ تبدیل می‌کند
LCASE(c) یک حوزه را به صورت کوچک تبدیل می‌کند
MID(c,start[,end]) یک کاراکتر از یک حوزه متنی استخراج می‌کند
LEN(c) طول یک حوزه متنی را بازمی‌گرداند
INSTR(c,char) موقعیت یک کاراکتر معین شده در یک حوزه متنی را بازمی‌گرداند
LEFT(c,number_of_char) بخش سمت چپ یک حوزه مورد درخواست را بازمی‌گرداند
RIGHT(c,number_of_char) بخش سمت راست یک حوزه مورد درخواست را بازمی‌گرداند
ROUND(c,decimals) بازگشت یک عدد به اعداد بعد از اعشار معین شده
MOD(x,y) مابقیه عمل تقسیم را بازمی‌گرداند
NOW() تاریخ سیستم فعلی را بازمی‌گرداند
FORMAT(c,format) تغییر نحوه نمایش یک حوزه خاص
DATEDIFF(d,date1,date2) برای انجام محاسبات تاریخ استفاده می‌شود