يأخذ هذا التابع وسيطاً واحداً وهو اسم عمود مثل 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 إن شاء الله.