تعلم قواعد بيانات SQL Database
1.76K subscribers
75 photos
3 videos
24 files
32 links
تعلم وعلم غيرك في قواعد بيانات SQL Database
تحليل وتصميم قواعد بيانات
وبرمجه مواقع اخبارية
Download Telegram
هل يمكن استخدام GROUP BY مع دالة SUM لحساب إجمالي الرواتب في كل قسم؟
Anonymous Quiz
74%
نعم
26%
لا
Can you use SQL to retrieve the names of employees who have worked on multiple projects simultaneously?
Anonymous Quiz
33%
No
67%
Yes
كل واحد يقيم نفسه على الأسئلة السابقة نشوف كم نسبتك من 10
للطلاب الذي يريد يتوسع في تحليل ودراسة تفاصيل حول المفاهيم الأساسية لقواعد البيانات سوف ارسل كتاب بالعربي مفيد جداً
أساسيات قواعد البيانات_0.pdf
2.8 MB
هذا كتاب شرح اساسيات قواعد البيانات
2
صوره مبسطه ل ارتباطات الجداول
سلام الله عليكم فيه لدينا نظام حقيقي لطلاب مشتركين في القناه نريد من الجميع المشاركة في تحسين وتحليل النظام
3
مشروع إدارة المنتجات الإلكترونية يهدف إلى إنشاء نظام بسيط لإدارة
بيانات المنتجات والمخزون والطلبات، مما يساعد على تتبع العمليات التجارية بسهولة ودقة.
المشروع يركز على تسجيل تفاصيل المنتجات، تصنيفها، وإدارة الطلبات المتعلقة بها مع تحديث الكميات المتوفرة بشكل تلقائي.
4
لازم الجميع يحاول يشارك في التحليل والتصميم وكتابه ملاحظات حتى بالخاص لكي تتعلم اكثر او تفيد غيرك اذا كنت فاهم
👍2
مشروع إدارة المنتجات الإلكترونية يهدف إلى إنشاء نظام بسيط لإدارة
بيانات المنتجات والمخزون والطلبات، مما يساعد على تتبع العمليات التجارية بسهولة ودقة.
المشروع يركز على تسجيل تفاصيل المنتجات، تصنيفها، وإدارة الطلبات المتعلقة بها مع تحديث الكميات المتوفرة بشكل تلقائي.
هذا تحليل للجداول في هذا النظام بحيث ان النظام قابل للتوسعة والتحليل

1. الفئات Categories يحتوي على معلومات الفئات المختلفة للمنتجات.
2. المنتجات Products يحتوي على معلومات المنتجات، بما في ذلك الفئة والسعر والمخزون.
3. العملاء Customers يحتوي على معلومات العملاء، مثل الاسم والبريد الإلكتروني والعنوان.
4. الطلبات Orders يحتوي على معلومات الطلبات المقدمة من العملاء، بما في ذلك التاريخ والمبلغ الإجمالي.
5. تفاصيل الطلب OrderDetails يحتوي على تفاصيل كل طلب، بما في ذلك المنتجات والكميات والأسعار.
6. المستخدمون Users يحتوي على معلومات المستخدمين، مثل اسم المستخدم وكلمة المرور والدور.
7. الموردون Suppliers يحتوي على معلومات الموردين، بما في ذلك الاسم ووسائل الاتصال.
8. ربط المنتجات بالموردين Product_Suppliers يربط بين المنتجات والموردين، مع معلومات عن سعر الشراء.
9. المشتريات Purchases يحتوي على معلومات المشتريات من الموردين، بما في ذلك التاريخ والمبلغ الإجمالي.
10. تفاصيل الشراء Purchase_Items يحتوي على تفاصيل كل عملية شراء، بما في ذلك المنتجات والكميات والأسعار.
11. الحسابات Accounts يحتوي على معلومات حول الحسابات المالية.
12. المعاملات المالية Transactions يحتوي على معلومات المعاملات المالية المرتبطة بالحسابات والطلبات والمشتريات.
13. تقييمات المنتجات ProductReviews يحتوي على تقييمات العملاء للمنتجات، بما في ذلك التقييمات والتعليقات.
14. العروض الترويجية Promotions يحتوي على معلومات العروض الترويجية المتعلقة بالمنتجات.
15. تقارير المخزون InventoryReports يحتوي على تقارير المخزون، بما في ذلك إجمالي المنتجات وقيمة المخزون.
16. تنبيهات المخزون InventoryAlerts يحتوي على تنبيهات بشأن المخزون المنخفض.
17. شحن الطلبات Shipping يحتوي على معلومات شحن الطلبات، بما في ذلك عنوان الشحن وتاريخ الشحن.
18. أدوار المستخدمين UserRoles يحتوي على معلومات حول أدوار المستخدمين والصلاحيات.
19. تقارير المبيعات SalesReports يحتوي على تقارير المبيعات، بما في ذلك إجمالي المبيعات وعدد الطلبات.
2
نبدأ بأنشاء قاعده البيانات ونسميها مثلا ElectronicProduct ManagementS ystem
امر انشاء قاعده بيانات نظام إدارة المنتجات
MS_= ManagementS ystem
create database MS_ElectronicProduct
1
نبدأ في انشاء الجداول
بحيث تتأكد انك تشتغل على القاعدة التي تم بنائها
use MS_ElectronicProduct
👍1
use MS_ElectronicProduct
--1. جدول الفئات (Categories)
CREATE TABLE Categories (
CategoryID INT PRIMARY KEY,
CategoryName VARCHAR(100) NOT NULL
);
1. إضافة فئة جديدة

INSERT INTO Categories (CategoryID, CategoryName)
VALUES (1, 'Electronics'); --
--2. جدول المنتجات (Products)
CREATE TABLE Products (
ProductID INT PRIMARY KEY,
ProductName VARCHAR(100) NOT NULL,
CategoryID INT,
Price DECIMAL(10, 2) NOT NULL,
StockQuantity INT NOT NULL,
Description TEXT,
FOREIGN KEY (CategoryID) REFERENCES Categories(CategoryID)
);
--3. جدول العملاء (Customers)

CREATE TABLE Customers (
CustomerID INT PRIMARY KEY,
FirstName VARCHAR(50) NOT NULL,
LastName VARCHAR(50) NOT NULL,
Email VARCHAR(100) NOT NULL UNIQUE,
PhoneNumber VARCHAR(15),
Address VARCHAR(255)
);
1
--4. جدول الطلبات (Orders)



CREATE TABLE Orders (
OrderID INT PRIMARY KEY,
CustomerID INT,
OrderDate DATETIME NOT NULL,
TotalAmount DECIMAL(10, 2) NOT NULL,
Status VARCHAR(50),
PaymentStatus VARCHAR(50),
ShippingStatus VARCHAR(50),
FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
);
--5. جدول تفاصيل الطلب (OrderDetails)



CREATE TABLE OrderDetails (
OrderItemID INT PRIMARY KEY,
OrderID INT,
ProductID INT,
Quantity INT NOT NULL,
Subtotal DECIMAL(10, 2) NOT NULL,
FOREIGN KEY (OrderID) REFERENCES Orders(OrderID),
FOREIGN KEY (ProductID) REFERENCES Products(ProductID)
);
--6. جدول المستخدمين (Users)



CREATE TABLE Users (
UserID INT PRIMARY KEY,
Username VARCHAR(50) NOT NULL UNIQUE,
Password VARCHAR(255) NOT NULL,
Role VARCHAR(50) NOT NULL
);
👍21
--7. جدول الموردين (Suppliers)
CREATE TABLE Suppliers (
SupplierID INT PRIMARY KEY,
SupplierName VARCHAR(100) NOT NULL,
ContactNumber VARCHAR(15),
Email VARCHAR(100) NOT NULL UNIQUE,
Address VARCHAR(255)
);
--8. جدول ربط المنتجات بالموردين (Product_Suppliers)
CREATE TABLE Product_Suppliers (
ProductSupplierID INT PRIMARY KEY,
ProductID INT,
SupplierID INT,
PurchasePrice DECIMAL(10, 2) NOT NULL,
FOREIGN KEY (ProductID) REFERENCES Products(ProductID),
FOREIGN KEY (SupplierID) REFERENCES Suppliers(SupplierID)
);
--9. جدول المشتريات (Purchases)
CREATE TABLE Purchases (
PurchaseID INT PRIMARY KEY,
SupplierID INT,
PurchaseDate DATETIME NOT NULL,
TotalAmount DECIMAL(10, 2) NOT NULL,
Status VARCHAR(50),
FOREIGN KEY (SupplierID) REFERENCES Suppliers(SupplierID)
);
--10. جدول تفاصيل الشراء (Purchase_Items)
CREATE TABLE Purchase_Items (
PurchaseItemID INT PRIMARY KEY,
PurchaseID INT,
ProductID INT,
Quantity INT NOT NULL,
UnitPrice DECIMAL(10, 2) NOT NULL,
TotalPrice DECIMAL(10, 2) NOT NULL,
FOREIGN KEY (PurchaseID) REFERENCES Purchases(PurchaseID),
FOREIGN KEY (ProductID) REFERENCES Products(ProductID)
);
--11. جدول الحسابات (Accounts)
CREATE TABLE Accounts (
AccountID INT PRIMARY KEY,
AccountName VARCHAR(100) NOT NULL,
AccountType VARCHAR(50) NOT NULL,
Description TEXT
);
--12. جدول المعاملات المالية (Transactions)
CREATE TABLE Transactions (
TransactionID INT PRIMARY KEY,
TransactionDate DATETIME NOT NULL,
AccountID INT,
Amount DECIMAL(10, 2) NOT NULL,
TransactionType VARCHAR(50) NOT NULL,
Description TEXT,
RelatedOrderID INT,
RelatedPurchaseID INT,
FOREIGN KEY (AccountID) REFERENCES Accounts(AccountID),
FOREIGN KEY (RelatedOrderID) REFERENCES Orders(OrderID),
FOREIGN KEY (RelatedPurchaseID) REFERENCES Purchases(PurchaseID)

);
1
--13. جدول تقييمات المنتجات (Product Reviews)

CREATE TABLE ProductReviews (
ReviewID INT PRIMARY KEY,
ProductID INT,
CustomerID INT,
Rating INT CHECK (Rating >= 1 AND Rating <= 5),
Comment TEXT,
ReviewDate DATETIME NOT NULL,
FOREIGN KEY (ProductID) REFERENCES Products(ProductID),
FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
);
--14. جدول العروض الترويجية (Promotions)

CREATE TABLE Promotions (
PromotionID INT PRIMARY KEY,
ProductID INT,
DiscountPercentage DECIMAL(5, 2) CHECK (DiscountPercentage >= 0 AND DiscountPercentage <= 100),
StartDate DATETIME NOT NULL,
EndDate DATETIME NOT NULL,
FOREIGN KEY (ProductID) REFERENCES Products(ProductID)
);
--15. جدول تقارير المخزون (Inventory Reports)



CREATE TABLE InventoryReports (
ReportID INT PRIMARY KEY,
ReportDate DATETIME NOT NULL,
TotalProducts INT NOT NULL,
TotalStockValue DECIMAL(10, 2) NOT NULL
);
--16. جدول تنبيهات المخزون (Inventory Alerts)

CREATE TABLE InventoryAlerts (
AlertID INT PRIMARY KEY,
ProductID INT,
ThresholdQuantity INT NOT NULL,
FOREIGN KEY (ProductID) REFERENCES Products(ProductID)
);
--17. جدول شحن الطلبات (Shipping)

CREATE TABLE Shipping (
ShippingID INT PRIMARY KEY,
OrderID INT,
ShippingAddress VARCHAR(255) NOT NULL,
ShippingDate DATETIME,
TrackingNumber VARCHAR(100),
FOREIGN KEY (OrderID) REFERENCES Orders(OrderID)
);
--18. جدول أدوار المستخدمين (User Roles)
CREATE TABLE UserRoles (
RoleID INT PRIMARY KEY,
RoleName VARCHAR(50) NOT NULL,
Permissions TEXT
);
--19. جدول تقارير المبيعات (Sales Reports)

CREATE TABLE SalesReports (
ReportID INT PRIMARY KEY,
ReportDate DATETIME NOT NULL,
TotalSales DECIMAL(10, 2) NOT NULL,
TotalOrders INT NOT NULL
);
2