القائمة الرئيسية

الصفحات

الدرس الأول SQL

مفهوم قواعد البيانات

قاعدة البيانات (Database) ببساطة عبارة عن ملف ضخم يمكن فيه ترتيب المعلومات التي نريد تخزينها بشكل مرتب و منظم, و يمكن استرجاع هذه المعلومات و التعديل عليها في أي وقت. و بالتالي فإن أهميتها تكمن بأنك تستطيع معالجة و تخزين بيانات المستخدمين في مكان واحد و بكل سهولة.

بشكل عام, قاعدة البيانات يرمز لها بشكل أسطواني كالتالي لأنه يقصد به خزّان المعلومات.

أهمية قواعد البيانات

قواعد البيانات هي أهم عنصر في المشاريع على الإطلاق.
فمثلاً المواقع الإلكترونية, الأنظمة الضخمة, و التطبيقات معظمعها يستخدم قواعد بيانات لتخزين المعلومات التي نحفظها فيها.

قواعد البيانات تتيح لك العديد من الميزات و هذه أهمها:

  • ترتيب بيانات المستخدمين بشكل يسهل الوصول إليها و التعامل معها.

  • تحديد أنواع البيانات التي يتم تخزينها بدقة مثل نصوص, أرقام, تواريخ, عملات إلخ..

  • وضع شروط على البيانات التي سيتم تخزينها بالإضافة إلى إمكانية وضع قيم إفتراضية.

  • الوصول إلى المعلومات بشكل سريع جداً في حال تم إستخدام الفهارس (Indexes).

  • عدم الحاجة إلى تكرار المعلومات و هذه إحدى أهم الميزات.

  • إمكانية إنشاء نسخ إحتياطية (Backups) من قاعدة البيانات بكل سهولة.

ماذا سأتعلم من هذه الدورة؟

في هذه الدورة ستتعلم كيف تنشئ قواعد البيانات من الصفر, و ستتعلم جميع أوامر SQL التي تستخدم للتعامل مع قواعد البيانات.
في كل درس ستتعلم أوامر جديدة في SQL و في نهاية الدورة سيمر معك تمارين لقواعد بيانات ضخمة و معقدة تماماً كالتي نبنيها في المشاريع الحقيقية.

و من المهم جداً أن تعرف أنك ستتعلم كيف تتعامل مع قواعد البيانات بشكل عام و ليس مع نوع محدد من قواعد البيانات حيث أن هناك العديد من قواعد البيانات مثل MySQL - SQL Server - Oracle - Access - SQLlite و غيرهم الكثير. و لكن ذلك لا يشكل أي مشكلة لأن جميع قواعد البيانات تعتمد نفس أوامر SQL التي ستتعلمها في هذه الدورة.

إذاً كن على يقين أن هذه الدورة ستؤهلك للعمل مع أي نوع من قواعد البيانات.


هل أحتاج معرفة أي شيئ قبل تعلم هذه الدورة؟

إطلاقاً, أسلوب الشرح المعتمد في هذه الدورة لا يتطلب منك معرفة أي شيء مسبق.

لمن تم إعداد هذا المرجع؟

تم إعداد هذا المرجع ليتلاءم مع جميع الأشخاص الذين يريدون التعلم.
إذاً سواء كنت هاوياً, طالباً أو مبرمجاً, فإن هذا المرجع سيساعدك على فهم قواعد البيانات و الوصول إلى مستوى متقدم جداً.

في الدرس التالي سنرشدك لتحميل الأدوات التي سنستخدمها للتعامل مع قواعد البيانات و التي بإمكانك إستعمالها نفسها في مشاريعك الخاصة في المستقبل.

SQL تجهيز بيئة العمل

كيف يتنفذ الإستعلام الذي يتم إرساله لقاعدة البيانات

أي أمر نرسله لقاعدة البيانات يمر بالمراحل التالية تباعاً حتى يتنفذ و يرجع لنا النتيجة.


في البداية, الإستعلام ( Query ) عبارة عن أمر أو مجموعة أوامر ( Statements ) نريدها أن تتنفذ في قاعدة البيانات.
الآن لاحظ أنه عند إرسال أي أمر فإنه يتم إرساله لخادم قاعدة البيانات ( Database Server ) و الذي يقوم بالتشييك على الأوامر الموضوعة في الإستعلام الذي قمت بإرساله. إذا وجد أن الأوامر المكتوبة في هذا الإستعلام لا يوجد بها أي مشكلة, يقوم بتنفيذها و من ثم يرجع لك النتيجة. إذا وجد أن الإستعلام بالأساس فيه أي مشكلة فإنه لا يتواصل مع قاعدة البيانات بل يخبرك مباشرةً بأنه يوجد خطأ في الإستعلام.

الآن سنرشدك لتحميل و تنصيب كل شيء تحتاجه للتعامل مع قواعد بيانات.

تجهيز بيئة عمل لتعلم قواعد البيانات

هناك برامج عديدة يمكن استخدامها للتعامل مع قواعد البيانات, منها ما هو مجاني و منها ما هو غير مجاني.
في هذه الدورة سنتعامل مع قواعد بيانات MySQL لأنها مجانية و تعتبر من أشهر قواعد البيانات.

للتعامل مع قواعد بيانات MySQL يمكننا تنصيب برنامج XAMPP المجاني و الذي بدوره يتضمن خدمة MySQL التي تنفذ لنا الإستعلامات بالإضافة لخدمة phpMyAdmin التي هي عبارة عن لوحة تحكم تتيح لنا رؤية قواعد البيانات و التعامل معها بشكل مباشر بدون كتابة أي كود و بنفس الوقت تعرض لنا كل الكود الذي تكتبه عنا.

و هنا نود الإشارة إلى أننا نستخدم MySQL و phpMyAdmin للتعامل مع قاعدة البيانات التي نستخدمها في موقعنا.


طريقة تجهيز بيئة العمل

لتجهيز بيئة العمل قم بمشاهدة جميع الخطوات التالية و بنفس الترتيب لتحميل البرامج و ضبط إعدادتها بشكل صحيح.


هنا وضعنا خطوات تحميل و تنصيب برنامج XAMPP.
هذه الخطوات تفعلها مرة واحدة فقط.

شاهد الخطوات »


هنا وضعنا خطوات تغيير رقم بورت الخادم Apache.
هذه الخطوات تفعلها مرة واحدة فقط.

شاهد الخطوات »


خطوات تشغيل Apache و MySQL و phpMyAdmin.
هذه الخطوات تفعلها في كل مرة تريد فيها التعامل مع قواعد البيانات.

شاهد الخطوات »

النافذة التي سنتعامل معها طوال هذه الدورة

من الآن و حتى إنتهاء الدورة ستتعامل مع واجهة صفحة phpMyAdmin سواء لكتابة أوامر SQL أو للتعامل بشكل مباشر مع قواعد البيانات.
لذا قم دائماً بتشغيل Apache و MySQL و فتح صفحة phpMyAdmin لتطبيق الأوامر التي تتعلمها في أي درس جديد.

إذاً هذه هي الصفحة التي سنتعامل معها من الآن فصاعداً.


ملاحظة

أهم ما يجب أن تركز عليه في هذه الدورة هو فهم كيف تكتب أوامر SQL بشكل صحيح و فهم العلاقات بين الجداول ( Relation Between Tables ).
هذه الأشياء سنشرحها لك بتفصيل ممل لأنها مهمة جداً و معرفتها أهم من معرفة أي شيء آخر.

الأشياء الأخرى مثل طريقة بناء قواعد البيانات بدون كتابة أوامر SQL, طريق تصدير قاعدة البيانات, طريقة تحديد صلاحيات المستخدمين, طريقة التعامل مع قواعد البيانات بواسطة موجه الأوامر ( Command Line ) إلخ.. سنشرحها في قسم خاص في نهاية الدورة.

خطوات تحميل و تنصيب برنامج XAMPP

في البداية, جميع الخطوات التي وضعناها في هذه الدرس هي لنظام Windows و بالتالي في حال كنت تستخدم نظام آخر يجب أن تقوم بالبحث عن الخطوات المناسبة للنظام الذي تستخدمه.

  1. أدخل إلى هذا الموقع لتحميل نسخة من البرنامج.
    إذهب الموقع »


  2. في هذه الصفحة ستجد نسخة لنظام Windows و نسخة لنظام Linux و نسخة لنظام Mac.
    توجه للنسخة الخاصة بالنظام الذي تستخدمه و قم بتحميل آخر إصدار متوفر بالنقر على زر Download الموضوع بجانبها كالتالي.


  1. بعد أن يكتمل التحميل, قم بفتح الملف لتبدأ بتنصيب الأدوات.
    أنقر بزر الفأرة الأيمن على الملف, ثم أنقر على Run as administrator


  1. إضغط على Next.


  1. هنا يمكنك تحديد الخيارات التي تريد أن يتم تنصيبها ضمن برنامج XAMPP.
    و يمكنك إبقاء جميع الخيارات و يمكنك تحديد ما تحتاجه بالضبط من أجل هذه الدورة. ما تحتاج تنصيبه بشكل أساسي من أجل هذه الدورة هو الخيارات التي قمنا بتعليمها باللون الأخضر.


  1. هنا يمكنك تحديد المسار الذي تريد فيه وضع ملفات البرنامج.
    لا تقم بتغيير المسار الإفتراضي الذي يظهر لك و قم فقط بالضغط على Next.


  1. أزل علامة الصح عن الخيار Learn more about Bitnami for XAMPP.

  2. إضغط على Next.


  1. إضغط على Next.


  1. لا تفعل أي شيء و انتظره حتى يكمل تنصيب البرنامج.


  1. أزل علامة الصح عن الخيار Do you want to start the Control Panel now?.

  2. إضغط على Finish.


إلى هنا تكون قد قمت بتثبيت XAMPP و معه phpMyAdmin و MySQL.

طريقة فتح برنامج XAMPP

لكي تفتح البرنامج بشكل سريع بدون أن تضطر للدخول إلى المجلد الذي قمت فيه بتنصيبه فيه, يمكنك الدخول للمجلد الذي قمت فيه بتنصيبه فيه و الذي في حالتنا هو C:\xampp\ و من ثم النزول في النافذة قليلاً حتى تجد الملف التنفيذ xampp-control.exe الذي يمثل البرنامج.

توجه للملف كما في الصورة التالية و لكن لا تنقر على الملف حتى لا يفتح الآن لأنك غير مضطر ذلك و في حال فتحته لا يوجد أي مشكلة طبعاً.


الآن لإنشاء رابط إختصار للملف التنفيذي xampp-control.exe يوجد ثلاث خيارات أمامك.
قم بالنقر بزر الفأرة الأيمن على الملف التنفيذ xampp-control.exe و من ثم إختر أحد الطرق التالية:

  • Pin to Start في حال أردت وضع رابط إختصار للملف التنفيذي في قائمة ويندوز الأساسية.

  • Pin to taskbar في حال أردت وضع رابط إختصار للملف التنفيذي في شريط مهام ويندوز.

  • Send To ثم Desktop (Create Shortcut) في حال أردت وضع رابط إختصار للملف التنفيذي على سطح المكتب.

سبب الحاجة لتغيير رقم بورت Apache

أي تطبيق يستخدم النت أو يقدم خدمة تعمل عبر شبكة النت أو شبكة داخلية ضمن الحاسوب يحتاج أن يستخدم منفذ من المنافذ التي يوفرها نظام التشغيل حتى يمرر البيانات عبر هذا المنفذ.
معلومة: المنفذ أو البورت ( Port ) في عالم المعلوماتية و هو مجرد رقم عادي يستخدم للتفرقة بين الخدمات و البرامج التي تعمل عبر النت.

في برنامج XAMPP سنستخدم خدمة phpMyAdmin لكتابة أي أمر من أوامر SQL أو للتعامل مع قواعد البيانات بشكل مباشر.
خدمة phpMyAdmin هي في الأساس عبارة عن موقع إلكتروني - صفحة ويب - تفتحها بواسطة المتصفح و هذا الشيء ستتعلمه بعد قليل.
الذي يسمح لخدمة phpMyAdmin أن تعمل هو خادم إسمه Apache و هذا ما يحتاج رقم بورت خاص به حتى يعمل.
الفكرة التي نريد قولها من كل هذا الكلام أن خدمة phpMyAdmin حتى تعمل, تحتاج أن يكون الخادم الذي يمكنه تشغيلها ( أي Apache ) يستخدم أحد المنافذ المتوفرة في نظامك مع الإشارة إلى أن الرقم الإفتراضي الذي يحاول أن يستخدمه Apache هو الرقم 80.

من المشاكل التي قد تظهر لك من لحظة فتح برنامج XAMPP هي أن الخادم Apache لا يمكن أن يعمل على البورت رقم 80 تماماً كما ظهر لنا عند فتح برنامج XAMPP.

سبب عدم قدرته على العمل على هذا البورت هو أنه يوجد برنامج آخر في حاسوبك يستخدم هذا البورت, فمثلاً قد يكون برنامج Skype أو SQL Server أو برنامج آخر موجود على حاسوبك يستخدم هذا البورت.

لهذا السبب سنقوم بتغيير رقم البورت الإفتراضي الذي يستخدمه برنامج phpMyAdmin إلى الرقم 1234 لأنه لا يوجد أي برنامج على الأرجح يستخدم هذا الرقم.

طريقة تغيير رقم بورت الخادم Apache

سواء ظهر لك أن الرقم 80 يستخدم من قبل برنامج آخر أم لم يظهر, يمكنك تغيير رقم البورت كما سنفعل.
لذا إن لم تظهر لك أي مشكلة سببها رقم البورت, يمكنك عدم إجراء الخطوات التي وضعناها.


لتغير رقم البورت الذي سيعمل عليه الخادم Apache إتبع الخطوات التالية:

  1. على نفس السطر الموجود عليه كلمة Apache أنقر على كلمة Config و من ثم إختر كلمة Apache (httpd.conf).


  1. سيفتح لك الملف httpd.conf بشكل تلقائي بواسطة محرر Notepad أو بواسطة أي محرر إفتراضي تستخدمه أنت.
    لا تفعل أي شيء هنا و انتقل للخطوة التالية.


  1. في القائمة العلوية أنقر على Edit ثم إختر Find.


  1. الآن يطلب منك إدخال الشيء الذي تريد البحث عنه. نحن نريد البحث عن كل رقم 80 موجود في هذا الملف و تبديله بالرقم 1234.
    لذا قم بإدخال الرقم 80 ثم أنقر Find Next.


  1. هذا أول رقم 80 يستخدمه برنامج Apache تم إيجاده و الذي يجب أن نبدله بالرقم 1234.
    ملاحظة: الصورة التالية توضح كيف أصبح بعد التبديل.


  1. السطر #Listen 12.34.56.78.78:80 لا داعي لتعديل أي رقم فيه لأنه مجرد شرح موضوع للمبرمجين الذي يريدون إجراء تعديلات على الملف لذا تهتم به.
    السطر الذي كان مكتوب فيه Listen 80 قمنا بتغيير إلى Listen 1234.


  1. أنقر Find Next مرة أخرى حتى تجد ثاني رقم 80 موضوع في هذا الملف.

  2. قم بتبديل الرقم 80 بالرقم 1234.
    ملاحظة: الصورة التالية توضح كيف أصبح بعد التبديل.


  1. السطر الذي كان مكتوب فيه ServerName localhost:80 قمنا بتغيير إلى ServerName localhost:1234.


  1. بعد تبديل كل أرقام البورتات, قم بالنقر على أنقر File ثم Save لحفظ التعديلات التي قمت بإجراءها.


قم بإغلاق الملف httpd.conf لأنه لا داعي لأن يظل مفتوحاً, ثم إرجع إلى الدرس للتعلم كيف تقوم الآن بتشغيل الخادم Apache و خدمة phpMyAdmin.

طريقة تشغيل Apache و MySQL

بعد أن قمت بتنصيب برنامج XAMPP و ضبط إعدادات الخادم Apache أصبحت قادر على تشغيل خدمة MySQL و phpMyAdmin في وقت تريده باتباع الخطوات التالية.


  1. قم بفتح برنامج XAMPP.


  1. قم بتشغيل الخادم Apache بالنقر على زر Start كالتالي.


  1. بعد أن يشتغل الخادم Apache بنجاح لاحظ التالي:

    • كلمة Apache أصبح لون خلفيتها أخضر للإشارة أنه شغّال.

    • الخادم Apache يعمل على البورت رقم 1234 الذي قمنا بوضعه سابقاً و البورت 443 الذي يمكن استخدامه لإجراء إتصال مشفر و لكن هذا لا يهمنا على الإطلاق.

    • كلمة Start تم تبديلها بكلمة Stop و التي يمكنك النقر عليها الآن لإيقاف عمل الخادم.


  1. قم بتشغيل خدمة MySQL بالنقر على زر Start كالتالي.


  1. بعد تشغيل خدمة MySQL بنجاح لاحظ التالي:

    • كلمة MySQL أصبح لون خلفيتها أخضر للإشارة أنها شغّال.

    • كلمة Start تم تبديلها بكلمة Stop و التي يمكنك النقر عليها الآن لإيقاف عمل الخدمة.


إلى هنا نكون قد قمنا بتشغيل Apache و MySQL بنجاح لأن كلاهما تظهر خلفيتهما باللون الأخضر.
الآن أصبح بإمكانك إغلاق نافذة برنامج Apache لأن الخدمات التي قمت بتشغيلها بداخله ستبقى تعمل في الخلفية بشكل عادي جداً.


تنبيه

في كل مرة تقوم بها بإطفاء و تشغيل جهازك فإن كل الخدمات التي قمت بتشغيلها من داخل برنامج XAMPP سيتم إيقافها.
لهذا عليك إعادة تشغيلها من جديد في كل مرة تقوم فيها بإعادة تشغيل الجهاز.

طريقة تشغيل phpMyAdmin

بعدما قمت تشغيل Apache و MySQL بنجاح أصبح بإمكانك فتح phpMyAdmin بواسطة أي متصفح.


معلومة تقنية

خدمة phpMyAdmin عبارة عن صفحة ويب جاهزة مبنية بلغة PHP تستخدم للتعامل مع قواعد بيانات MySQL.
لهذا قبل تشغيل خدمة phpMyAdmin نحتاج تشغيل الخادم Apache لأنه من يفهم أوامر PHP و تشغيل خدمة MySQL لأنها من تفهم أوامر SQL.
و بما أن خدمة phpMyAdmin عبارة عن صفحة ويب فإننا نحتاج بالنهاية إلى متصفح حتى نفتحها بواسطته.


قم باتباع الخطوات التالية لتشغيل صفحة phpMyAdmin:

  1. تأكد أن Apache و MySQL يعملان و لون خلفيتهما أخضر كالتالي.


  1. أغلق برنامج XAMPP لأنه لا داعي لأن تظل نافذته مفتوحة أمامك, حيث أنه يهمك أن تكون خدماته تعمل و ليس نافذته.


  1. إفتح أي متصفح تريد مثل Firefox - Chrome - Opera إلخ..

  2. أكتب عنوان صفحة phpMyAdmin كالتالي localhost:1234/phpmyadmin

  3. أنقر على الزر Enter حتى تفتح الصفحة.


  1. بعد كتابة الرابط بشكل صحيح ستفتح لك صفحة phpMyAdmin في المتصفح كالتالي.


إلى هنا نكون قد أصبحنا قادرين على البدأ بتعلم قواعد البيانات و تنفيذ أوامر SQL.