أنشاء قواعد بيانات عن طريق xampp (mysql)

الكاتب: Mr.Aziz

تاريخ النشر: 2021-06-08 19:02:43

مساءكم الخير...

 

اليوم راح نشرح عن طريقة أنشاء قواعد البيانات من خلال MySQL  وبيكون في localhost بجهازك بأستخدام البرنامج xampp

 

واذا ماقريت عن xampp يمديك تقراها من هنا

 

تأكد انك حملت برنامج xampp بنجاح واذا كنت تستخدم نسخة Linux ايضآ نفس الشئ

شغل البرنامج و تأكد اللمبة الخضراء شغاله عندك MySQL Database and Apache

ملاحظة مهمة: هذي واجهة برنامج باللينكس ولكن الويندوز والماك يختلف بس كلهم نفس العمل انك تسوي start وتشتغل معاك بشكل جيد.

مثال بالويندوز راح تكون كذا:

 

المهم اذا كنت تستخدم ويندوز اضغط على start

ونفس الشئ مع اللينكس كما بالصوره التالية.

 

بالنسبه لي شغال عندي و مايحتاج اضغط start ولكن اذا عندك بالبرنامج و اللمبة حمراء

يجب عليك انك تضغط Start كل من Apache and database

ولاتنسى الاعدادات انصحك تغير البورت عن طريق Configure لانه مانبغى هذا برنامج يتعارض مع اي سيرفر او برنامج اخر موجود في جهازك.

نضع بورت وهمي 1234 مثل موضح بالصوره فوق.

 

بعد ماتنتهي من هنا تضغط موافق ثم تغلق البرنامج لاننا ليس بحاجة اليه و السيرفر والقاعده بيانات راح تكون شغاله في Localhost تبعك.

وأذا كنت تبغى تتأكد السيرفر شغال معاك بشكل سليم

ادخل من المتصفح هذا العنوان

http://localhost:1234/

اذا ظهرت لك هذي الصفحة معناه سيرفر تبعك شغال و سليم لايوجد اي مشاكل.

 

 

طبعآ كل هذا موجود في جهازك Localhost.

بعد ماتأكدنا كل شي تمام الحين نبدء مع القواعد بيانات.

 

هنا راح ندخل على صفحة phpmyadmin

عن طريق المتصفح بعد localhost:1234 نضع علامة / ثم phpmyadmin

هذا الرابط:

http://localhost:1234/phpmyadmin

 

هذي صفحة قاعد بيانات تبعك و تقدر تستخدمها لما تسوي موقع و تبغى تحفظ بيانات آين كانت مثلآ طلاب او موظفين او بيانات اتصالات و كل البيانات راح تنحفظ في هذي قاعده بيانات و طبعآ بأختلاف اللغه تقدر تستخدم PHP او غيرها ولكن لن نشرح هذا اليوم لانه مو موضوعنا.

طبعآ أمن جدآ وتستطيع حذف او اضافة كما تشاء و لن يراها احد غيرك لانه موجوده بجهازك localhost

 

 

 

هنا راح اشرحلكم القوائم قبل مانبدء عمل أنشاء قاعده بيانات

باللون الاحمر: هذي قائمة قواعد بيانات و بعضها تكون موجود وبعضها لا. بسبب اني قد استخدمتها ولازالت موجوده. ولما تشوف قواعد البيانات عندك موجوده افتراضية لاتلمسها وخلها زي ماهي. أخر واحد مكتوب test في حال انك تبي تجرب شي او لا.

 

باللون الازرق: هذا اسم السيرفر تبعك وراح تلاحظ لما تمرر الماوس عليها تقدر تضغط عليها و بيرجعك على نفس الصفحه هذي. وتلاحظ ايضآ لما تتصفح بالقواعد بيانات راح تشوف يتغير وتشوف اسم القاعده بيانات الى تستخدمها.

 

باللون الاخضر: هذي خيارات ولكن لن نستخدمها كلها الا database و SQLو structure فقط.

و ايضآ تقدر تسوي قاعده بيانات بدون كتابة الكود ولكن نحتاج نشرحها عن طريق كتابة الكود وهذا سبب فتح الموضوع اليوم :).

 

للعلم سوف اشرح موضوع اخر في SQL live عن طريق متصفح ولكن هذا موضوع ثاني وليس اليوم.

وايضآ راح اشرح انواع data type بالموضوع ثاني بسبب هنا نركز على انشاء قاعده بيانات فقط.

بحيث ماحد يتشتت و يضيع.


عالعموم نبدء.

اليوم راح استخدم انشاء قاعده بيانات الى استخدمناها في ERD كما شرحنا سابقآ.

 

في البداية لازم نروح من الخيارات و نضغط SQL ثم بالخانة نكتب الكود:

CREATE DATABASE WORK_SHOP

create database : هذا انشاء قاعده بيانات وراح تنضاف بالقائمة عندك باليسار.

work_shop: اسم قاعده بيانات الى اخترناه وتقدر تختار اي اسم كانت.

 

وراح تلاحظ بعض مانضغط على كلمة GO راح تنضاف في قائمة قاعده بيانات الى متواجده باليسار.

مثال بالصوره:

 

تلاحظ طلع النتيجة باللون الاخضر معناه النتيجة سليمة و تم اضافتها بالقائمة قواعد بيانات بنجاح.

 


ألان نريد ننشئ اول جدول و يكون من نوع parent و بشرط اساسي ان لايوجد FK وألا سوف يظهر لك خطأ وبالغالب بيمشي معاك ولكن بيظهر لك خطأ في حال انك ماأضفت parent تبع.

 

هذا الجدول:

 
 

ملاحظه: تأكد انك تستخدم USE ثم اسم القاعده الى تشتغل عليه حاليآ بحيث مايظهر لك خطأ او جدول الى سويناه يروح مكان اخر في قاعده بيانات. والمعلومات جاهزه عندي لتوفير الوقت

 

مثال بالصوره متحركة:

 

راح تلاحظون تم أضافة الجدول تحت اسم work_shop قاعده بيانات.

طيب سؤال؟ في حال عكسنا الموضوع بدال مايكون customer يكون vehicle ؟

 

هل راح يقبل؟ لا. ماراح يقبل حتى لو اشتغل معاك بس بالواقع لما تجي تستدعي معلومات راح تلاحظ عندك أخطاء في Keys او اشياء ناقصة بالاصل مثل فقدان parent تبعه.

 

راح نوضحها بشكل اكثر بالمقال اخر في SQL .live

نجي جدول ثاني الى هو vehicle يعتبر CHILD او يرجع الى جدول CUSTOMER

لانه مثلآ لو جينا نستدعي او نتكلم عن طريق relationship

  • يكون كل customer واحد يكون عنده اكثر من سياره.
  • كل سيارات يكون يمتلكها Customer واحد فقط تمام.

لهذا سبب اخترنا customer as parent و vehicle as child

هنا مثال بالصوره:

 

هنا اضفنا جدول vehicle و تم اضافتها بنجاح.

 

هنا نجي جدول اخر من نوع parent

طيب ياعبدالعزيز كل شوي تقول parent او child؟ مافهمت؟

 

هذا طريقة او method بحيث انك تفهم كيف تستخدم PK and FK بطريقه انك تتفادى من الاخطأ وتربط العلاقه بشكل جيد من نوع M:1

اذا ماقريت موضوع سابق هذا انصحك تقراه لو مافهمته.

 

تفضل من هنا

 

 

بسبب وضعنا parent اخر لانه نريد نضع childs يعني

child تبع vehicle و اخر child تبع mechanic

والجدول راح يكون هو service او الصيانة.

 

 

طيب ياعبدالعزيز وين child بالموضوع؟

 

الحين راح تشوف وين.

احنا اضفنا الجدول service ولكن اخر شي بالجدول وضعنا References  او راجع الى جدول الاخر الى هو parents

هذا الكود الى اتكلم عنه من جدول سابق:

Mechanic_ID int REFERENCES Mechanic,
    Veh_ID int REFERENCES vehicle

يعني كل مكانيكي واحد يشتغل في اكثر من صيانة بالسياره

ولكن صيانات سياره يشتغل عليه ميكانيكي واحد.

 

طيب نجي اخر جدولين عباره عن M:M و تم تحويل العلاقه الى M:1 بسبب وضع الجسر بينهم الى هو جدول Inve_serviceOrder ليه؟

 

لانه عندنا جدولين الى هم Inventory و service_order

  • اكثر من صيانه تحتاج اكثر من اداء او items من المستودعات الى هي Inventory
  • والعكس نفس الشئ اكثر items او اغراض تحتاجها بالصيانات. يعني

العلاقه راح تكون M:M

و راح نضيف جسر بيهم و نسميه Inve_serviceOrder او بالعربي مكان جاهز الاستخدام بدال ماتروح المستودع وتبحث وتضيع.

اول شي خلينا نسوي جدول المستودع

هذا جدول يعتبر parent بسبب راح يكون مستودع واحد فقط

يعني بالورشه راح يكون في مستودع واحد وفيه كل الاغراض الى تحتاجها للصيانه تمام!!

و جدول اخر موجود اسمه service_order الى هو صيانه

 

 

الان نسوي جدول الاخير الى هو Inve_serviceOrder

يعتبر جسر بينهم و اسميه مكان جاهز الاستخدام الاغراض او اغراض تم تجهيزها الصيانات القادمه

 

يعني تخيل معاي:

عميل اسمه عبدالعزيز عمل موعد للتغير زيت و فلتر و نوع سياره كامري 2019 اليوم الاحد.

هنا راح يجهزون الاغراض زي فلتر وزيت والخ الى يحتاجونها عشان يصلحون سياره بأسرع وقت و بدون مايضيعون وقت بالبحث…

 

لهذا سبب نحتاج هذا الجدول:

 
 
 

 

هنا انتهينا من اخر جدول ومثل مانلاحظ تم اضافه الجدول بالنجاح.

والحين صارت كذا:

  • مستودع يضع بالمكان الجاهز اكثر من الغرض او items
  • صيانه تاخذ اكثر من items واحد

وكذا صار m:1 بدال m:m

وطبعآ في أكثر من طريقة تعمل جسر عن طريق الكود ولكن هذا اسهلها:

 
Inv_ID int REFERENCES Inventory,
    service_id int REFERENCES service_order,
   
 PRIMARY KEY(Inv_ID,service_id),

بحيث نضع primary key تابعه المستودع والصيانه

وبنفس الوقت نحولها Foreign key


 
 

و كذا أنتهينا من شرح طريقة بناء قاعده بيانات من خلال phpmyadmin.

في حال ان تريد تتأكد عملك صحيح تستطيع تأكد من خلال الخيار  Structure.

 

و insert سوف اشرحها الحالها المره قادمه بأذن الله.

 

هنا انتهينا من بناء قاعده بيانات بنجاح في PHPmyAdmin

 

أشوفكم على خير...