تعلم قواعد بيانات SQL Database
1.79K subscribers
84 photos
3 videos
26 files
38 links
📘 تعلم قواعد بيانات SQL بأسلوب مبسط
🛠 شرح عملي + أمثلة وتمارين
🎯 للمبتدئين وطلاب IT
📅 دروس منتظمة
تعلم اليوم وطبّق غداً
Download Telegram
🚀 بداية مشروع احترافي على القناة
إذا كنت تعرف أساسيات SQL لكن لا تعرف كيف تبني نظام حقيقي…
فهذا هو التحول الذي كنت تنتظره 👇
🔥 ابتداءً من اليوم:
سنبني معًا نظام ERP متكامل باستخدام SQL Server
لا يوجد شرح عشوائي
لا يوجد نظريات بدون تطبيق
بل:
مشروع حقيقي خطوة بخطوة
من مستوى متوسط → احتراف
كل درس = جزء من النظام
---
🎯 ماذا سنبني؟
نظام يحتوي على:
- إدارة العملاء (Customers)
- المنتجات (Products)
- الطلبات (Orders)
- المخزون (Inventory)
- الموظفين (HR)
---
💡 الهدف النهائي:
تحويلك من:
"شخص يعرف SQL"
إلى:
"شخص يبني أنظمة حقيقية"
---
📅 الخطة:
30 يوم = نظام كامل + مهارات احترافية
---
🔥 إذا أنت جاد: ابد اليوم
👍3
📌 Lesson 1: كيف يفكر نظام ERP؟
#Day1 #ERP_Project

قبل كتابة كود، افهم عمل النظام:

🛒 السيناريو:
1️⃣ اختيار المنتج
2️⃣ إنشاء طلب (Order)
3️⃣ إضافة التفاصيل
4️⃣ خصم الكمية من المخزون
5️⃣ تسجيل العملية
💡 هذا يسمى: Business Flow (تدفق العمل)

🎯 مهمتك كمطور:
ليس فقط SQL بل تحويل السيناريو إلى: جداول + علاقات + منطق
📊 العناصر الأساسية:
- Customers
- Products
- Orders
- Inventory

🔥 Challenge:
هل العميل يمكن أن يملك أكثر من طلب؟ ولماذا؟
💬 اكتب إجابتك في التعليقات
🧠 سؤال سريع (مهم جدًا)

في نظام ERP:

ما نوع العلاقة بين:

Customers و Orders ؟

---

A) One-to-One
B) One-to-Many
C) Many-to-Many

---

💬 اكتب الإجابة + السبب

🎯 الهدف:
نبدأ نفكر كمحللين أنظمة وليس فقط مبرمجين

🔥 سيتم شرح الإجابة في الدرس القادم
🟠 🧠 (Relationships + أول كود)
📌 Lesson 2: فهم العلاقات (Relationships)
#Day3 #ERP_Project
---
📊 الإجابة الصحيحة:
Customers → Orders = One-to-Many
---
💡 لماذا؟
لأن:
عميل واحد يمكن أن ينشئ عدة طلبات
لكن كل طلب يعود لعميل واحد فقط
---
🔥 هذا أهم مفهوم في قواعد البيانات:
Relationship Design
---
🎯 الآن نبدأ أول خطوة حقيقية:

إنشاء جدول Customers 👇
CREATE TABLE Customers (
CustomerID INT PRIMARY KEY IDENTITY,
Name NVARCHAR(100) NOT NULL
);
🎯 ماذا تعلمنا؟
- كل جدول يمثل كيان (Entity)
- كل علاقة تمثل ارتباط منطقي

🔥 Challenge:

كيف تتوقع شكل جدول Orders؟

فكر في:
- ما هي الأعمدة؟
- كيف نربطه بـ Customers؟

💬 اكتب تصميمك في التعليقات
Live stream scheduled for
📌 Lesson 3: كيف نفكر في تصميم Orders؟
#Day4 #ERP_Project
🎯 قبل ما نكتب أي كود…
لازم نسأل:
ما هو "Order" داخل النظام؟
---
🧠 تخيل هذا السيناريو:
عميل دخل واشترى منتجات 👇
النظام لازم يسجل:
* من هو العميل؟
* متى تم الطلب؟
* ما هو رقم الطلب؟
---
💡 إذًا جدول Orders يجب أن يحتوي على:

✔️ OrderID
✔️ CustomerID
✔️ OrderDate
---
❗️ سؤال مهم:
هل نضع المنتجات داخل Orders؟ 🤔
---
🚫 الجواب: لا
ليش؟
لأن:
الطلب الواحد يحتوي على أكثر من منتج
---
🔥 Challenge:
برأيك:
ما هو الحل الصحيح لتخزين المنتجات؟
💬 اكتب فكرتك
1
# 🟢 Day 4 — (فهم Orders قبل الكود)

هذا المنشور هدفه “ترتيب التفكير” وليس كتابة كود

:::writing{variant="social_post" id="58213"}
📌 Lesson 3: كيف نفكر في تصميم Orders؟
#Day4 #ERP_Project

---

🎯 قبل ما نكتب أي كود…

لازم نسأل:
ما هو "Order" داخل النظام؟

---

🧠 تخيل هذا السيناريو:

عميل دخل واشترى منتجات 👇

النظام لازم يسجل:

- من هو العميل؟
- متى تم الطلب؟
- ما هو رقم الطلب؟

---

💡 إذًا جدول Orders يجب أن يحتوي على:

✔️ OrderID
✔️ CustomerID
✔️ OrderDate

---

❗️ سؤال مهم:

هل نضع المنتجات داخل Orders؟ 🤔

---

🚫 الجواب: لا

ليش؟

لأن:
الطلب الواحد يحتوي على أكثر من منتج

---

🔥 Challenge:

برأيك:
ما هو الحل الصحيح لتخزين المنتجات؟

💬 اكتب فكرتك
# 🟢 Day 5 — (إنشاء Orders Table + أول ربط حقيقي)

📌 Lesson 4: إنشاء جدول Orders وربطه بـ Customers
#Day5 #ERP_Project

---

🎯 الآن نحول التفكير إلى كود 👇

---

🔥 الكود:
CREATE TABLE Orders (
OrderID INT PRIMARY KEY IDENTITY,
CustomerID INT,
OrderDate DATETIME DEFAULT GETDATE(),
FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
);
---

💡 ماذا فعلنا هنا؟

✔️ أنشأنا جدول Orders
✔️ ربطناه بجدول Customers
✔️ كل طلب أصبح مرتبط بعميل

---

📊 هذا يسمى:
Relationship (ربط بين الجداول)

---

❗️ سيناريو مهم:

إذا حذفنا Customer مرتبط بطلب…

ماذا سيحدث؟ 🤔

---

🔥 Challenge:

جاوب:
هل يسمح النظام بالحذف أم يمنعه؟ ولماذا؟

💬 اكتب إجابتك
1
# 🟢 Day 6 — (حل المشكلة الحقيقية: OrderDetails)
📌 Lesson 5: حل مشكلة المنتجات داخل الطلب (OrderDetails)
#Day6 #ERP_Project

---

🎯 المشكلة:

الطلب يحتوي على عدة منتجات ❗️

---

لا يمكن تخزينها داخل Orders

---

💡 الحل الاحترافي:

إنشاء جدول جديد:
OrderDetails

---

🔥 الكود:
CREATE TABLE OrderDetails (
    ID INT PRIMARY KEY IDENTITY,
    OrderID INT,
    ProductID INT,
    Quantity INT,
    FOREIGN KEY (OrderID) REFERENCES Orders(OrderID)
);
---

📊 ماذا حللنا؟

✔️ فصلنا الطلب عن التفاصيل 
✔️ أصبح كل طلب يحتوي على عدة منتجات 
✔️ حللنا مشكلة Many-to-Many

---

🎯 أصبح النظام كالتالي:

Orders → معلومات عامة 
OrderDetails → تفاصيل المنتجات 

---

🔥 Challenge:

ما نوع العلاقة بين:

Orders و OrderDetails ؟

💬 اكتب الإجابة
:::
🔥 تحدي :
اكتب استعلام يعرض:
اسم العميل + تاريخ الطلب
💬 اكتب الحل في التعليقات
1
سؤال احترافي
💣 إذا استخدمت JOIN غلط…
ممكن تطلع بيانات مضروبة
كيف تتأكد أن النتائج صحيحة؟
#ERP_Project
🎯 Lesson 7 — Foreign Keys
ليست مجرد سطر SQL... إنها حارس بيانات النظام
📌 Lesson 7 — هل يمكن إنشاء طلب لعميل غير موجود؟ 🤔
تخيل أنك تعمل على نظام مبيعات...
وأحد المبرمجين نفذ هذا الأمر:
INSERT INTO Orders(CustomerID)
VALUES(999);

لكن...
❗️العميل رقم 999 غير موجود أصلاً!
هل يجب أن يسمح النظام بهذا؟
لو سمح بذلك...
سيصبح لدينا طلب بدون صاحب!
وهنا تبدأ مشاكل التقارير والفواتير والأنظمة المالية.
💡 لهذا السبب نستخدم Foreign Key.
هو لا يربط الجداول فقط...
بل يحمي البيانات من الأخطاء.
🎯 بدون Foreign Key:
Orders قد تشير إلى Customer غير موجود.
أما مع Foreign Key:
النظام يمنع الخطأ قبل تخزين البيانات.
4
Lesson 8
INNER JOIN
كيف يجمع SQL البيانات من أكثر من جدول؟
تخيل أن مدير الشركة طلب منك تقريرًا يحتوي على:
رقم الطلب
اسم العميل
تاريخ الطلب
لكن...
اسم العميل موجود في جدول Customers.
ورقم الطلب موجود في Orders.
كيف نجمعهما؟
هنا يأتي دور INNER JOIN.
🎯 Challenge
قبل رؤية الكود...
توقع النتيجة.
هل سيظهر كل العملاء؟
أم فقط العملاء الذين لديهم طلبات؟
اكتب توقعك.
الكود
SELECT
O.OrderID,
C.CustomerName,
O.OrderDate
FROM Orders O
INNER JOIN Customers C
ON O.CustomerID = C.CustomerID;
💡 الآن شغّل الكود بنفسك.
هل كانت النتيجة كما توقعت؟
🚨 تحدي اليوم
لدينا:
Customers
Ahmed
Sara
Ali

Orders
Ahmed
Sara

السؤال:
بعد تنفيذ INNER JOIN...
هل سيظهر Ali؟
ولماذا؟
💬 ممنوع تشغيل SQL.
أجب بالتفكير فقط.
ملخص الدرس الثامن
Lesson 9
First ERP Report
📌 Lesson 9 | أول تقرير احترافي في SQL Server
تخيل أنك انتهيت من تصميم قاعدة البيانات...
لكن مدير الشركة قال لك:
"أريد تقريرًا يعرض الطلبات."

هنا تبدأ وظيفة SQL الحقيقية.
ليست إنشاء الجداول...
بل استخراج المعلومات منها.
اليوم سنبني أول تقرير يشبه ما تراه داخل أنظمة ERP.
💬 سؤال اليوم:
برأيك...
ما المعلومات التي يجب أن تظهر داخل تقرير الطلبات؟
اكتب اقتراحك قبل أن نبدأ.