SQLوضع أسماء مختصرة للجداول
- الكلمة AS مع الجداول
- تجهيز قاعدة البيانات التي سنطبق عليها
- متى نحتاج وضع أسماء مختصرة؟
الكلمة AS مع الجداول
في الدروس السابقة شاهدنا أنه بإمكاننا تغيير أسماء الجداول عند جلبها بواسطة الكلمة AS.
في هذا الدرس ستتعلم طريقة وضع أسماء مختصرة للجداول حين نجلب المعلومات من أكثر من جدول في نفس الوقت حتى لا تضطر إلى كتابة إسم الجدول كما هو كلما أردنا الإشارة إلى عمود موجود فيه.
الشكل العام لإستخدامها مع الجداول
إذاً لوضع إسم مختصر للجدول, نضع AS بعد إسم الجدول و من ثم ندخل الإسم المختصر له.
بعد وضع إسم مختصر للجدول, تستخدم هذا الإسم نفسه للوصول لأعمدته.
تجهيز قاعدة البيانات التي سنطبق عليها
قم بتنفيذ الإستعلام التالي حتى تنشئ قاعدة بيانات جديدة إسمها harmash
تحتوي على الجداول التالية:
- الجدول الأول إسمه
countries
و هو مخصص لحفظ معلومات البلدان. - الجدول الثاني إسمه
users
و هو مخصص لحفظ معلومات المستخدمين و التي من ضمنها بلد كل مستخدم.
الإستعلام
بعد تنفيذ الإستعلام السابق في phpMyAdmin سيتم إنشاء قاعدة البيانات harmash
و إنشاء الجدولين countries
و users
بداخلها.
قم بالنقر على إسم قاعدة البيانات harmash
من القائمة اليسرى حتى تبدأ بالتعامل معها و تطبيق ما ستتعلمه في هذا الدرس.
الجدول التالي يظهر البيانات التي قمنا بإضافتها بشكل إفتراضي في الجدول countries
.
countries | ||
---|---|---|
id | name | |
1 | KSA | |
2 | Oman | |
3 | Egypt | |
4 | Kuwait | |
5 | Bahrain |
الجدول التالي يظهر البيانات التي قمنا بإضافتها بشكل إفتراضي في الجدول users
.
users | ||||
---|---|---|---|---|
id | username | first_name | last_name | country_id |
1 | rami | Rami | Masri | 1 |
2 | ahmad | Ahmad | Naji | 2 |
3 | hanan | Hanan | Mostafa | 5 |
4 | saly | Saly | Harmush | NULL |
5 | samir | Samir | Saleh | 3 |
6 | hamad | Hamad | Akel | 2 |
7 | abdullah | Abdullah | Helmi | 1 |
8 | rashed | Rashed | Masri | 5 |
9 | majed | Majed | Alali | NULL |
10 | rayan | Rayan | Kasabi | NULL |
الآن, إذا وضعنا الجدولين بجانب بعض, سنلاحظ كيف ربطنا قيم الجدول users
بقيم الجدول countries
من خلال رقم التعرفة id
الخاص بكل بلد.
ملاحظات حول الجدول users
:
- عند تحديد بلدان المستخدمين لم نقم بكتابة أسماء البلدان من جديد, بل وضعنا فقط رقم
id
البلد المذكور في الجدولcountries
. - يوجد 3 مستخدمين لم يتم تحديد بلدهم, أي عندهم قيمة الحقل
country_id
تساوي NULL. - لا يوجد أي مستخدم من البلد الذي يملك رقم
id
يساوي 4, أي لا يوجد أي مستخدم من Kuwait.
متى نحتاج وضع أسماء مختصرة؟
الحالة الأولى
إذا كنت تتعامل مع جدول واحد، فأنت لست بحاجة إطلاقاً لذكر إسم الجدول الذي تتعامل مع أعمدته.
عند التعامل مع جدول واحد فقط، لا تحتاج أن تضع إسم مختصر للجدول لأنه من ناحية لا يوجد داعي لذلك, و من ناحية أخرى سيؤدي لزيادة حجم الكود.
فمثلاً، إذا كنا نريد طباعة first_name
و last_name
المستخدمين الموضوعين في الجدول users
.
لاحظ كيف سكون شكل الإستعلام, إذا قمنا بذكر إسم الجدول الذي يحتوي على الأعمدة أو إذا وضعنا إسم مختصر للجدول.
الإستعلام
شكل الإستعلام بدون وضع أسماء مختصرة للجداول.
شكل الإستعلام مع ذكر إسم الجدول الذي نتعامل مع أعمدته.
شكل الإستعلام إذا وضعنا إسم مختصر للجدول users
مثل الحرف u
فقط.
سنحصل على النتيجة التالية عند تنفيذ الإستعلام.
first_name | last_name |
---|---|
Rami | Masri |
Ahmad | Naji |
Hanan | Mostafa |
Saly | Harmush |
Samir | Saleh |
Hamad | Akel |
Abdullah | Helmi |
Rashed | Masri |
Majed | Alali |
Rayan | Kasabi |
الحالة الثانية
إذا كنت تتعامل مع جدولين أو أكثر، يفضل وضع أسماء مختصرة للجداول لأن ذلك سيؤدي لتقليل حجم الكود.
بالإضافة إلى أنك بذلك ستتجنب حدوث تضارب في أسماء الجداول كما سبق و شاهدنا في الدرس السابق.
الآن, في حال أردنا طباعة id
و username
و country
كل مستخدم موجود في الجدول users
سواء كان يملك رقم بلد محدد أم لا يمكننا أن نربط الجدولين بطريقة LEFT JOIN تماماَ كما فعلنا في الدرس السابق.
هنا ستلاحظ أن حجم الكود سيصبح أقل إذا وضعنا أسماء مختصرة للجداول.
و لك أن تتخيل كم سيصبح حجم الكود أصغر إذا كنا سنحضر المعلومات من أعمدة أخرى و كنا ننوي نضع شروط.
الإستعلام
شكل الإستعلام مع ذكر إسم الجدول الذي نتعامل مع أعمدته.
شكل الإستعلام إذا وضعنا الحرف u
كإسم مختصر للجدول users
و الحرف c
كإسم مختصر للجدول countries
.
سنحصل على النتيجة التالية عند تنفيذ الإستعلام.
id | username | country |
---|---|---|
1 | rami | KSA |
2 | ahmad | Oman |
3 | hanan | Bahrain |
4 | saly | NULL |
5 | samir | Egypt |
6 | hamad | Oman |
7 | abdullah | KSA |
8 | rashed | Bahrain |
9 | majed | NULL |
10 | rayan | NULL |
الحالة الثالثة
إذا كان الجدول نفسه يحتوي على أعمدة قيمها مترابطة ببعضها البعض, في هذه الحالة تكون مجبر على وضع إسم مختصر للجدول حتى تتمكن من جلب البيانات بشكل مترابط.
ربط بيانات الجدول نفسه ببعضها ( Self Join ) لم نتطرق له سابقاً لأنك يجب أن تعرف كيف تضع إسم مختصر للجدول حتى تتمكن من فعل ذلك.
في الدرس التالي ستتعلم كيف يتم ربط بيانات الجدول نفسه ببعضها بتفصيل ممل.