SQLجلب بيانات خالية من التكرار
- مفهوم البيانات المكررة
- تجهيز قاعدة البيانات التي سنطبق عليها
- أمثلة حول إرجاع قيم غير مكررة
مفهوم البيانات المكررة
عند تخزين البيانات في الجداول فمن الطبيعي جداً أن يتم تخزين نفس القيمة أكثر من مرة.
فعلى سبيل المثال يمكن وجود 50 شخص إسمهم محمد في الجدول الذي يحتوي على أسماء المستخدمين.
في حال أردت جلب بيانات خالية من التكرار يمكنك إضافة الكلمة DISTINCT بعد الكلمة SELECT.
طريقة استخدامها
- مكان الكلمة
column_list
نضع إسم الأعمدة. - مكان الكلمة
table_name
نضع إسم الجدول الذي سنجلب بيانات غير مكررة منه.
للدقة أكثر، الكلمة DISTINCT تزيل الأسطر المكررة من النتيجة. أي لا ترجع أي سطرين فيهما القيم نفسها.
تجهيز قاعدة البيانات التي سنطبق عليها
قم بتنفيذ الإستعلام التالي حتى تنشئ قاعدة بيانات جديدة إسمها harmash
و تنشئ فيها جدول إسمه users
يحتوي على بيانات 10 مستخدمين.
مثال
بعد تنفيذ الإستعلام السابق في 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 | Lebanon |
5 | Samir | Saleh | Lebanon |
6 | Hamad | Akel | Syria |
7 | Abdullah | Helmi | Egypt |
8 | Rashed | Masri | Oman |
9 | Majed | Alali | Yaman |
10 | Rayan | Kasabi | KSA |
أمثلة حول إرجاع قيم غير مكررة
الإستعلام التالي يجلب كل أسماء البلدان الموضوعة في جدول المستخدمين مع الإشارة إلى أنه لا يكرر إسم أي بلد في حال كان مذكور أكثر من مرة.
المثال الأول
النتيجة
country |
---|
Lebanon |
Syria |
KSA |
Egypt |
Oman |
Yaman |
الإستعلام التالي يجلب كل أسماء البلدان الموضوعة في جدول المستخدمين مع الإشارة إلى أنه لا يكرر إسم أي بلد في حال كان مذكور أكثر من مرة.
إضافة إلى ذلك سيتم عرض أسماء البلدان بالترتيب الأبجدي.
المثال الثاني
النتيجة
country |
---|
Egypt |
KSA |
Lebanon |
Oman |
Syria |
Yaman |
نلاحظ أننا حصلنا على نفس النتيجة السابقة و لكن أسماء البلدان تم وضعها بالترتيب الأبجدي.