شرح sql بالعربي - الدوال او التوابع في SQL شرح sql بالعربي - الدوال او التوابع في SQL - اقرا معي وتعلم على الانترنت

شرح sql بالعربي - الدوال او التوابع في SQL

التابع او الدالة هو عبارة عن تعبير رياضي ياخذ مجموعة من القيم للدخل التي نسميها متغيرات او معاملات ويعيد لنا خرج وحيد نسميه قيمة الدالة او قيمة التابع مثل الدالة التي تقوم بحساب مجموع قيم عددية .

شرح sql بالعربي - الدوال او التوابع في SQL

الدوال في 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

ثالثاً الدالة 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  بل يمكن استخدامهما معًا في صيغة واحدة كما يظهر في الصيغة السابقة .



الى اللقاء في التدوينة القادمة لا تنسى الاشتراك في مدونتنا والاعجاب بصفحتنا على الفيس بوك ...
شارك الموضوع
تعليقات
محتوى قد يهمك

.