قبل الدخول فى درس اليوم. ارجوا منك ان لا تفزع من عنوان الموضوع.
(هذا يحدث عادة عند البدأ فى تعريف اى مفهوم جديد)
وان شاء الله سترى ان معنى هذا العنوان شئ بسيط ويمكن فهمه بسهولة بإذن الله.
اولا نبدأ درس اليوم بالربط او مايسمى Concatenation (معناها الحرفى التسلسل)
الربط هو شئ بسيط جدا.
لنفرض ان لدينا داخل احد جداول قاعدة البيانات
حقلين احداهم للإسم الأول, والثانى للأسم الثانى.
فعندما نقوم بإستخراجهم من قاعدة البيانات يتم استخراجهم بالشكل التالى (مثلا)
كود :
SELECT first_name, second_name FROM `table_name`
سيتم عرضهم بجدول بحيث يكون الإسم الأول فى حقل بمفرده والثانى فى حقل اخر بمفرده.
كالشكل التالى كامثال
كود :
first_name second_name
----------------------
Ahmed Ali
Hany Salama
لكن ماذا اذا اردنا وضع الإثنين بحقل واحد؟ هذا هو مايسمى الربط
ويتم بإستخدام دالة تدعى CONCAT
يمكننا إعادة اختيار الحقلين المذكورين اعلاه بالشكل التالى
كود :
SELECT CONCAT(first_name, ' ', second_name) FROM `table_name`
بهذا الشكل, يتم استخراج حقل first_name بعده يتم ادخال المسافة التى تم وضعها بين علامتين التنصيص ' ' (ويمكن ان نضع اى فاصل على حسب الحاجة)
وبعدها يتم استخراج حقل الـ second_name
لكن هناك شئ, انت عندما تقوم بعمل concat لحقلين او اكثر, انت فى الواقع تستخرج قيم جديدة (بمعنى خليط بين عدة جداول وليس جدول واحد)
بالتالى كيف سيتم عرض هذه القيم؟
يعنى عندما استخرجنا الجدولين بالطريقة العادية, تم وضع قيمة الـ first_name تحت حقل الـ first_name وكذلك مع حقل الـ second_name
لكن ماذا عن ناتج عملية الربط؟ يجب ان توضع تحت معرف ما خاص بها.
وهنا يأتى دول الأقنعة او مايعرف بالـ Aliases
والمقصود بالأقنعة هو ان تستخرج قيمة ما من احد الحقول, لكن يتم الوصول اليها عن طريق معرف اخر نعرفه نحن, ويكون هذا المعرف هو قناع لإسم الحقل الحقيقى.
اذن لنعد صياغة الكود الذى استخدمنا به دالة CONCAT بعد ان نقوم بعمل قناع له.
كود :
SELECT CONCAT(first_name, ' ', second_name) AS full_name FROM `table_name`
ماذا سينتج عن هذا الإستعلام؟ سينتج شكل كالتالى
كود :
full_name
Ahmed Ali
Hany Salama
هل اتضح عمل الدالة CONCAT بشكل جيد الأن؟ اتمنى ذلك.
اذن لنتجه قليلا للأقنعة قبل إنهاء الدرس
استخدام الأقنعة فى الأصل, هو لتسهيل عملية الوصول لأحد القيم
كما لاحظنا فى استخدامه مع دالة الـ CONCAT
لكن الأقنعة ايضا يمكن ان تستخدم مع اسامى الجداول (وليس فقط الحقول)
كالتالى كامثال
كود :
SELECT column AS column_1 FROM table_name AS another_table_name
وليس هناك الكثير لنقوله حول الأقنعة لأنه كما ترى فهى بمنتهى البساطة فى صياغتها. وحتى عملها بسيط وجيد ويستخدم بكثرة وفهمه ليس شئ صعب عليك.
لكن اليك ملحوظات سريعة حول الدرس
- الدالة CONCAT لها اخت تسمى CONCAT_WS والحرفين WS اختصار لكلمتين With Separator اى, مع الفاصل.
واستخدامها, هو لوضع فاصل ثابت, يتم فصل كل الجداول التى يتم ربطها به.
كالتالى مثلا
كود :
SELECT CONCAT_WS(' ,', column_1, column_2, column_3) AS columns FROM `table_name`
المعطى الأول للدالة, هو الفاصل نفسه وهو فى المثال اعلاه عبارة عن مسافة وعلامة فاصلة.
وبقية المعطيات هى اسامى الحقول التى سيتم دمجهم ببعض
واحد مميزات هذه الدالة ايضا, انها سوف تتجاهل اى بيانات تحتوى على القيمة NULL
* احرف الأقنعة (اى اسم الـ Alias) يمكن ان يصل الى 255 حرف, ومع العلم ايضا انه اسم الـ alias يكون حساس تجاه حالة الأحرف, يعنى A ليس مثله مثل a
* المصطلح AS هو مصطلح اختيارى قمت بوضعه فى الشرح لجعل الأمور اكثر وضوحا ليس الا, (انا شخصيا افضل استخدامه, لا يوجد سبب لهذا اكثر من انها مسألة تعود وراحة نفسية, اشعر ان هذا يسهل على فهم الكود عندما اعود للعمل معه بعد فترة من كتابته)
لكن يمكنك عدم استخدامه
كود :
SELECT column_name alias_name ...
اتمنى يكون الدرس كان واضح بكل جوانبه, واراكم بالدرس المقبل بإذن الله.
المصدر:
[ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط]