عماد | مبرمج 💻
عماد | مبرمج 💻

@kla999

12 تغريدة 76 قراءة Jan 11, 2021
تعتبر قواعد البيانات
( database )
من أهم أساسيات أي نظام أو موقع أو منصة
بشكل مبسط، إذا قررت تسوي موقع أو تطبيق فيه نظام دخول وتسجيل للمستخدمين، تحتاج مكان تخزن فيه بيانات المستخدمين مثل الإيميل والرقم السري ..إلخ ( جدول أو table)
مثال عملي سريع يبسط المعلومة أكثر تحت 👇
قواعد البيانات SQL
تتكون من جداول
وكل جدول يحتوي على أعمدة وصفوف
نفترض قررنا نبني نظام بسيط جدا لمدونة
نحتاج في المدونة جدول (منشورات أو Posts)
وأيضا جدول (مستخدمين أو Users )
كل User يقدر يضيف أكثر من Post
وكل Post ينتمي إلى User واحد
نفترض عندي اليوزر عماد وأمل واحمد
عماد عنده 3 بوستات وأمل 4 واحمد 2 مثلا
كيف اقدر اعرف كل بوست والمستخدم التابع له أثناء تخزيني لهذه البيانات؟
خلونا نمسك كل جدول ونبنيه
جدول المستخدمين أو Users
بسبب انه ما يعتمد على جدول آخر نبدأ فيه الأول
جدول Users
ويحتوي على هذه الأعمدة (Columns) :
معرف خاص لكل مستخدم يكون من نوع integer (ID) ويكون PRIMARY KEY يعني مايتكرر
اسم المستخدم (name) من نوع varchar ومعناه نص أو string في لغة قواعد البيانات SQL
كود انشاء الجدول في الصورة
الآن بعد انشاء الجدول
نحتاج نضيف فيه بيانات
نضيف المستخدم الأول عماد
والمستخدم الثاني أمل
والمستخدم الثالث أحمد على سبيل المثال
وهذه العملية تسمى INSERT
لتخزين بيانات جديدة
في الصورة كود إضافة المستخدمين
ملاحظة * ممكن الـ ID يكون auto increment ما يحتاج نعطيه قيم
جدول Posts
بيحتوي على ID و title و content من نوع text مثل varchar نص لكن بطول أكبر، ونحتاج ايضا نعرف مين الشخص اللي بيضيف هذا البوست فنربط المستخدم بالبوست عن طريق ID المستخدم وممكن نسمي العمود user_id
ملاحظة * عمود user_id يعتبر FOREGIN KEY ( بيشير إلى قيمة في جدول آخر)
الان نضيف بوستات في الجدول
إذا عماد بيضيف بوست فنحتاج نخزن ID عماد في عمود user_id للبوست
وكذلك اذا امل او احمد بيضيفو
عشان بعدين في استرجاع البوستات
نقدر نحدد ونعرض فقط بوستات عماد او أمل أو احمد
في الصورة جدول Users النهائي مع Posts والعلاقة بينهم ويسمى هذا الشكل ERD
انتهينا! بهذه البساطة لدينا ما نحتاجه في نظامنا،
عند إنشاء جدول استخدمنا أمر CREATE TABLE وعند إضافة بيانات جديدة INSERT
عند عرض بيانات نستخدم أمر SELECT
مثل عرض جميع البوستات
select * from 'posts'
لعرض جميع بوستات عماد ممكن نزيد على الأمر where للتخصيص كما في الصورة
يمكننا تعديل قيمة أو أكثر بأمر UPDATE
على سبيل المثال لتعديل الاسم من عماد إلى علي
UPDATE 'Users' Set 'NAME' = 'Ali' WHERE ID = 1
*ملاحظة لو حذفنا شرط WHERE راح يتم تعديل كل المستخدمين إلى اسم علي
يمكننا حذف قيمة أو أكثر بأمر DELETE
مثلا حذف جميع البوستات التابعة لعماد اللي صار علي ( بس ماتغير الـ ID نفسه 1)
DELETE FROM 'Posts' WHERE
user_id = 1
ملاحظة * بدون شرط where راح تنحذف كل البوستات
يمكننا الربط بين جدولين باستخدام امر JOIN
بمعنى عرض جميع البوستات مع تفاصيل المستخدم التابعة له وليس فقط ID المستخدم
وذلك بربط الجدولين بالـ user_id
وتحديد الأعمدة اللي نبي نعرضها في أمر SELECT أو نستخدم * لعرض جميع الأعمدة كما في الصورة
الأوامر ( sql query ) مستخدم فيها mysql يمكنك أيضا التجربة على oracle وبالنسبة للواجهات أستخدم PhpMyAdmin
يمكنك تثبيت قواعد بيانات mysql على جهازك مع أي ويب سيرفر مثل xampp أو wamp أو Laragon..
إن أعجبك الثريد شاركه مع من قد يستفيد منه من زملاء التخصص وغيرهم 🤓👨‍💻👩‍💻

جاري تحميل الاقتراحات...