التابع او الدالة هو عبارة عن تعبير رياضي
ياخذ مجموعة من القيم للدخل التي نسميها متغيرات او معاملات ويعيد لنا خرج وحيد
نسميه قيمة الدالة او قيمة التابع مثل الدالة التي تقوم بحساب مجموع قيم عددية .
الدوال في SQL
تنقسم الى نوعين حسب معيار sql-99 وهي :
الدوال التجميعية مثل
f(x,y,z)=x+y+z
.
الدوال الدرجية مثل f(x)=|x|
.
نأخذها بالتفصيل :
اولا الدوال
التجميعية ومن اهمها :
AVG تقوم هذه الدالة بحساب معدل القيم لحقل معين
.
COUNT تقوم هذه الدالة بحساب عدد البيانات الخاصة
بحقل معين .
MIN تقوم هذه الدالة بإعادة اصغر قيمة من قيم
حقل معين .
MAX تقوم هذه الدالة بإعادة اكبر قيمة من قيم
حقل معين.
SUM تقوم هذه الدالة بحساب مجموع قيم حقل
معين......
الان سنقوم بعرض صيغ
كل دالة واسلوب علمها :
اولا الدالة AVG :
هذه الدالة تقوم
بحساب المتوسط الحسابي لقيم حقل معين وذلك بتقسيم مجموع قيم هذا الحقل على عددها .
والصيغة العامة لها
هي :
select
avg([ALL | DISTINCT]column_name) from اسم الجدول
الخيار all
يستخدم للحصول على المتوسط الحسابي لكل القيم بما فيها المكررة .
والخيار Distinct للحصول على المتوسط مع استبعاد القيم المكررة.
مثال :
اذا كان لدينا جدول
علامات الطلاب المسمى grades
والذي يحتوي على الحقول التالية studentClass و studentGrade و
studentName
للحصول على المتوسط
الحسابي لجميع الطلاب نستخدم الصيغة التالية
select
avg(studentGrade) from grades
ملاحظات :
قد لا تعمل خيارات all و Distinct في قواعد البيانات Access
.
قد تختلف القيمة التي
تعيدها الدالة AVG
من نظام ادارة قواعد البيانات الى آخر بسبب تحول النتيجة في الغالب الى نفس نوع
الحقل الذي تم التطبيق عليه .
ثانيا الدالة Count هذه
الدالة تقوم بحساب عدد البيانات الموجودة في الجدول من اجل حقل معين .
الصيغة العامة لها هي
select
count([* | ALL | DISTINCT]column_name) from اسم الجدول
الخيار ALL
يستخدم عندما نريد عدد البيانات الموجودة في جدول بالنسبة لحقل معين بدون القيم
التي تساوي Null
.
الخيار Distinct
يستخدم لعرض عدد البيانات بدون التكرارات او التي تحتوي Null .
الخيار * عندما نريد
عدد البيانات كلها مع التي تحتوي على Null والمكررة ايضاً
مثال
اذا كان لدينا جدول
علامات الطلاب grades الذي ذكرناه في المثال السابق .
اذا اردنا معرفة عدد
جميع الطلاب نستخدم العبارة التالية
select
count(*) from grades
لكن المثال السابق سيحسب حتى القيم التي تحتوي
على Null لذلك علينا ان نضيف الخيار all لعرض جميع الطلاب
الموجودين فعلا أي الذي حقل الاسم لا يكون فارغا ستكون العبارة كالتالي
select count(all studentName) from grades
select count(all studentName) from grades
ثالثاً الدالة MIN
والدالة MAX
:
تعيد الدالة MIN اصغر
قيمة في الحقل وصيغتها العامة هي :
select
min(اسم العمود)
from اسم الجدول
تعيد
الدالة MAX
اكبر قيمة في الحقل وصيغتها هي :
select
max(column_name) from table_name
مثال
للحصول على اصغر درجة في جدول درجات الطلاب
نستخدم التعبير التالي
select
min(studentGrade) from grades
وللحصول على اكبر درجة نستبدل MIN ب
الدالة MAX
.
رابعاً الدالة SUM :
تعيد الدالة SUM
مجموع قيم حقل معين وصيغتها هي كالتالي :
select
sum([ALL | Distinct]column_name) from table_name
مثال
اذا اردنا الحصول على مجموع درجات الطلاب في جدول
درجات الطلاب سنستخدم التعبير التالي
select
sum(studentGrade) from grades
ملاحظة لا تستخدم الدالة SUM مع
الحقول التي نوعها سلاسل حرفية
Having الكلمة المفتاحية
عندما
نفكر في وضع
شرط ما على
استعلام معين، يرد
إلى ذهننا استخدام الكلمة المفتاحية
where
مع شرط مناسب.
Select field_name from
table_name where condition
ولكن
هذا الحل البديهي يكون قاصرًا في بعض
الحالات مثل الحالة التي يكون
فيها أحد عناصر
الشرط تابعًا تجميعيًا.
نستخدم الكلمة المفتاحية
Having في حال
أردنا أن نضع
شرطًا على استعلام ما، بحيث
يكون أحد عناصر الشرط تابعًا تجميعيًا.
نستعمل Having ضمن الصيغة التالية:
Select columnA,
aggFunc (aggFuncSpec) from table
where whereSpec
Group by columnA
Having
filterCondition
انتبه: لا
تلغي الكلمة المفتاحية Having
دور where بل يمكن
استخدامهما معًا في
صيغة واحدة كما
يظهر في الصيغة السابقة .
الى اللقاء في التدوينة القادمة لا تنسى
الاشتراك في مدونتنا والاعجاب بصفحتنا على الفيس بوك ...
إرسال تعليق
لا تبخل علينا باقتراحك او قم بمشاركة الموضوع ليستفيد الاخرين ايضاً شكرا لزيارتك عزيزي الزائر