SQLحساب عدد أسطر الجدول بواسطة الدالة COUNT()
- الدالة
COUNT()
- تجهيز قاعدة البيانات التي سنطبق عليها
- أمثلة حول استخدام الدالة
COUNT()
الدالة COUNT()
الدالة COUNT()
تستخدم للحصول على عدد الحقول الغير فارغة الموجودة في العمود.
بشكل عام, نستخدم هذه الدالة لمعرفة إجمال عدد أسطر الجدول, أو لمعرفة عدد الأسطر التي تتوافق مع شرط محدد.
الشكل العام لإستخدامها
SELECT COUNT(column_name) FROM table_name WHERE condition;
إذاً نستدعي الدالة COUNT()
مباشرةً بعد الكلمة SELECT
.
إسم العمود الذي نريد الحصول على عدد الحقول الغير فارغة الموجودة فيه نكتبه بين أقواس الدالة مكان الكلمة column_name
.
تجهيز قاعدة البيانات التي سنطبق عليها
قم بتنفيذ الإستعلام التالي حتى تنشئ قاعدة بيانات جديدة إسمها harmash
و تنشئ فيها جدول إسمه users
يحتوي على بيانات 10 مستخدمين.
الإستعلام
-- سيتم حذفها harmash في حال كان يوجد بالأساس قاعدة بيانات إسمها DROP DATABASE IF EXISTS harmash; -- harmash هنا قمنا بإنشاء قاعدة بيانات جديدة إسمها CREATE DATABASE harmash; -- harmash هنا قمنا بتحديد أن أي إستعلام جديد سيتم تنفيذه على قاعدة البيانات USE harmash; -- يتألف من 4 أعمدة users هنا قمنا بإنشاء جدول جديد إسمه -- لأننا قمنا بتحديدها قبل إستدعاء هذا الأمر harmash سيتم إنشاء هذا الجدول بداخل قاعدة البيانات CREATE TABLE users ( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, first_name VARCHAR(50), last_name VARCHAR(50), country VARCHAR(50) ); -- هنا قمنا بإضافة 10 أسطر في الجدول, أي أضفنا معلومات 10 مستخدمين -- لاحظ أننا لم نحدد أسماء الأعمدة التي سنضع فيها البيانات لأننا قمنا بملئ جميع المعلومات -- في البداية هو حتى يكون عدد القيم الموضوعة يساوي عدد أعمدة الجدول null سبب وضع الكلمة -- ستقوم قاعدة البيانات بوضع رقم تعرفة مختلف لكل سطر null مكان الكلمة INSERT INTO users VALUES (null, "Rami", "Masri", "Lebanon"); INSERT INTO users VALUES (null, "Ahmad", "Naji", "Syria"); INSERT INTO users VALUES (null, "Hanan", "Mostafa", "KSA"); INSERT INTO users VALUES (null, "Saly", "Harmush", null); INSERT INTO users VALUES (null, "Samir", "Saleh", null); INSERT INTO users VALUES (null, "Hamad", "Akel", "Syria"); INSERT INTO users VALUES (null, "Abdullah", "Helmi", "Egypt"); INSERT INTO users VALUES (null, "Rashed", "Masri", "Oman"); INSERT INTO users VALUES (null, "Majed", "Alali", "Yaman"); INSERT INTO users VALUES (null, "Rayan", "Kasabi", null);
بعد تنفيذ الإستعلام السابق في phpMyAdmin سيتم إنشاء قاعدة البيانات harmash
و إنشاء الجدول users
بداخلها.
قم بالنقر على إسم قاعدة البيانات harmash
من القائمة اليسرى حتى تبدأ بالتعامل معها و تطبيق ما ستتعلمه في هذا الدرس.
البيانات التي قمنا بإضافتها بشكل إفتراضي في الجدول users
.
id | first_name | last_name | country |
---|---|---|---|
1 | Rami | Masri | Lebanon |
2 | Ahmad | Naji | Syria |
3 | Hanan | Mostafa | KSA |
4 | Saly | Harmush | NULL |
5 | Samir | Saleh | NULL |
6 | Hamad | Akel | Syria |
7 | Abdullah | Helmi | Egypt |
8 | Rashed | Masri | Oman |
9 | Majed | Alali | Yaman |
10 | Rayan | Kasabi | NULL |
أمثلة حول استخدام الدالة COUNT()
المثال الأول
الإستعلام التالي يقوم بعرض إجمالي عدد المستخدمين في الشركة.
ما فعلناه لحساب عدد المستخدمين هو حساب كم رقم id
يوجد في الجدول لأن هذا العمود لا يمكن أن يكون فيه حقول فارغة و هذا ما نحتاجه بالضبط هنا.
الإستعلام
SELECT COUNT(id) AS 'Total Users' -- مع تغيير إسم العمود الذي سيتم عرضه في النتيجة id هنا قمنا بجلب عدد القيم الموجودة في العامود FROM users; -- id هنا قمنا بتحديد إسم الجدول الذي يحتوي على العامود
يمكنك وضع الرمز *
مكان الحقل id
و لكن هذا الأسلوب لا ينصح به.
SELECT COUNT(*) AS 'Total Users' FROM users;
سنحصل على النتيجة التالية عند تنفيذ الإستعلام.
Total Users |
---|
10 |
المثال الثاني
الإستعلام التالي يقوم بعرض إجمالي عدد البلدان المذكورة في عمود بلد المستخدمين.
ما فعلناه لحساب عدد البلدان المذكورة في عمود بلد المستخدمين country
هو حساب كم حقل غير فارغ يوجد في العمود فقط.
الإستعلام
SELECT COUNT(country) AS 'Total Countries' -- مع تغيير إسم العمود الذي سيتم عرضه في النتيجة country هنا قمنا بجلب عدد القيم الموجودة في العامود FROM users; -- country هنا قمنا بتحديد إسم الجدول الذي يحتوي على العامود
سنحصل على النتيجة التالية عند تنفيذ الإستعلام.
Total Countries |
---|
7 |
المثال الثالث
الإستعلام التالي يقوم بعرض إجمالي عدد البلدان المذكورة في عمود بلد المستخدمين مع عدم حساب نفس البلد أكثر من مرة.
ما فعلناه لحساب عدد البلدان المذكورة في عمود بلد المستخدمين country
مع عدم حساب نفس البلد أكثر من مرة هو فلترة النتيجة العمود من أي تكرار باستخدام الكلمة DISTINCT
قبل حساب كم حقل غير فارغ يوجد في العمود.
الإستعلام
SELECT COUNT(DISTINCT country) AS 'Total Unique Countries' -- مع تغيير إسم العمود الذي سيتم عرضه في النتيجة country هنا قمنا بجلب عدد القيم الموجودة في العامود FROM users; -- country هنا قمنا بتحديد إسم الجدول الذي يحتوي على العامود
سنحصل على النتيجة التالية عند تنفيذ الإستعلام.
ملاحظة: عدد البلدان الغير مكررة هو 6
لأنه تم حساب البلد Syria
مرة واحدة هذه المرة.
Total Unique Countries |
---|
6 |
المثال الرابع
الإستعلام التالي يقوم بعرض إجمالي عدد المستخدمين الذين أصلهم من سوريا.
ما فعلناه لحساب عدد المستخدمين هنا هو وضع شرط أن الحقل country
يجب أن يساوي 'Syria'
حتى يتم حسابه.
أي إذا لم تكن قيمة الحقل تساوي 'Syria'
سيتم تجاهل الحقل كما يتم تجاهل الحقول الفارغة.
الإستعلام
SELECT COUNT(country) AS 'Total Users From Syria' -- مع تغيير إسم العمود الذي سيتم عرضه في النتيجة country هنا قمنا بجلب عدد القيم الموجودة في العامود FROM users -- country هنا قمنا بتحديد إسم الجدول الذي يحتوي على العامود WHERE country = 'Syria'; -- حتى يتم حساب عدده 'Syria' يجب أن يساوي country هنا قمنا بتحديد أن
سنحصل على النتيجة التالية عند تنفيذ الإستعلام.
ملاحظة: عدد المستخدمين الذين من سوريا هو 2
لأنه يوجد فقط مستخدمَين عندهما country
يساوي 'Syria'
.
Total Users From Syria |
---|
2 |