بسم الله الرحمن الرحيم
عنوان الدرس : التوابع الرياضية في MySQL - الجزء الأول
التابع count() :
يأخذ هذا التابع وسيطاً واحداً و هو اسم عمود, مثل count(name) .
و يقوم هذا التابع بحساب مجموع الخلايا الموجودة في العمود المذكور.
مثال تطبيقي:
select count(name) from emp;
ستظهر النتيجة التالية:
+--------------+
|count(name) |
+--------------+
|7 |
+--------------+
عندما نكتب هكذا :
select count(*) from emp;
ستظهر لنا نفس النتيجة السابقة, إذن ما الفرق بين الطريقتين؟
قلنا أن الطريقة الأولى يقوم التابع بحساب مجموع الخلايا التي تنتمي إلى العمود المقدم على شكل وسيط, أما في الطريقة الثانية فإنه يقوم بحساب مجموع السجلات الموجودة في الجدول, طبعاً هناك فارق كبير, و لتعرف ذلك قم بكتابة الاستعلام التالي:
select count(bonus) as 'total bonus' from emp ;
ستفاجئ عندما تظهر لك النتيجة التالية:
+--------------+
|total bonus |
+--------------+
|5 |
+--------------+
ألم نقل أن التابع count() يقوم بحساب مجموع الخلايا في حال كان الوسيط هو اسم عمود !؟ نعم .. لكنه لا يقوم بحساب الخلايا التي تحوي على NULL , لذلك يجب الحذر عندما تستخدم هذا التابع.
لاحظ الجملة الملونة باللون النيلي قد وضعناها بين علامتي اقتباس لأنه في حال كان هناك أكثر من كلمة متصلة بعد العبارة as يجب وضعها ضمن علامتي اقتباس.
تنبيه:
قد تريد أن تقوم بجمع سجلات جدولين أو أكثر عن طريق التابع count() , فقد تكتب الاستعلام التالي:
select count(*) from emp , adrs;
عندها سيقوم MySQL بضرب عدد سجلات الجدول emp بسجلات الجدول adrs و يعطيك النتيجة فإذا كان في كل جدول منهما سبع سجلات فإن التابع count() لن يعيد لك الرقم 14 بل سيعيد الرقم 49
لا يتوقف استخدام التابع count() عند الحدود التي ذكرناها, فعلى سبيل المثال قد تريد أن تعرف عدد الموظفين لديك الذين رواتبهم أكبر أو تساوي 5000, عندها ستحتاج للتابع count() :
select count(*) as 'salary big than 5000' from emp
where salary>=5000;
ستظهر لك النتيجة كما يلي:
+-------------------------------+
|Salary big than 5000 |
+-------------------------------+
|6 |
+-------------------------------+
إذن التابع count() يستخدم لإعطائنا معلومات إحصائية عن البيانات التي في قواعد بياناتنا.
نكتفي بهذا القدر من المعلومات, و في الدرس القادم سنتكلم بشكل أكثر تعمقاً عن التابع count() إن شاء الله.
و آخر دعوانا أن الحمد لله رب العالمين
أخوكم أبـو عمر