تعلم قواعد بيانات SQL Database
1.76K subscribers
75 photos
3 videos
24 files
32 links
تعلم وعلم غيرك في قواعد بيانات SQL Database
تحليل وتصميم قواعد بيانات
وبرمجه مواقع اخبارية
Download Telegram
بعد تحليل الجداول نحلل العلاقات
.3 تحديد العلاقات
كل موظف ينتمي إلى قسم واحد (علاقة بين موظف وقسم).
كل وظيفة يمكن أن تكون مرتبطة بعدة موظفين.
يمكن أن يعمل الموظفون في مشاريع متعددة (علاقة بين موظف ومشروع).
4-انشاء الجداول
CREATE TABLE Departments (
DepartmentID INT PRIMARY KEY IDENTITY(1,1),
DepartmentName NVARCHAR(100) NOT NULL
);

CREATE TABLE JobTitles (
JobTitle NVARCHAR(50) PRIMARY KEY,
Description NVARCHAR(MAX)
);

CREATE TABLE Employees (
EmployeeID INT PRIMARY KEY IDENTITY(1,1),
Name NVARCHAR(100) NOT NULL,
BirthDate DATE,
NationalID NVARCHAR(50) NOT NULL,
JobTitle NVARCHAR(50),
DepartmentID INT,
HireDate DATE,
Salary DECIMAL(10, 2),
Email NVARCHAR(100),
Phone NVARCHAR(15),
FOREIGN KEY (DepartmentID) REFERENCES Departments(DepartmentID),
FOREIGN KEY (JobTitle) REFERENCES JobTitles(JobTitle)
);

CREATE TABLE Projects (
ProjectID INT PRIMARY KEY IDENTITY(1,1),
ProjectName NVARCHAR(100) NOT NULL,
StartDate DATE,
EndDate DATE
);

CREATE TABLE EmployeeProjects (
EmployeeID INT,
ProjectID INT,
PRIMARY KEY (EmployeeID, ProjectID),
FOREIGN KEY (EmployeeID) REFERENCES Employees(EmployeeID),
FOREIGN KEY (ProjectID) REFERENCES Projects(ProjectID)
);
قوم بادخال بيانات افتراضيه للجداول السابقة
1. إدخال بيانات الأقسام

INSERT INTO Departments (DepartmentName) VALUES ('الموارد البشرية');
INSERT INTO Departments (DepartmentName) VALUES ('تكنولوجيا المعلومات');
INSERT INTO Departments (DepartmentName) VALUES ('التسويق');
INSERT INTO Departments (DepartmentName) VALUES ('المبيعات');
👍1
إدخال بيانات الوظائف
INSERT INTO JobTitles (JobTitle, Description) VALUES ('مدير مشروع', 'الإشراف على المشاريع وتنظيم الفرق');
INSERT INTO JobTitles (JobTitle, Description) VALUES ('مطور برمجيات', 'تطوير وتصميم البرمجيات');
INSERT INTO JobTitles (JobTitle, Description) VALUES ('أخصائي تسويق', 'تسويق المنتجات والخدمات');
INSERT INTO JobTitles (JobTitle, Description) VALUES ('مندوب مبيعات', 'بيع المنتجات والتواصل مع العملاء');
إدخال بيانات الموظفين
INSERT INTO Employees (Name, BirthDate, NationalID, JobTitle, DepartmentID, HireDate, Salary, Email, Phone)
VALUES
('علي أحمد', '1990-03-20', '987654321', 'مطور برمجيات', 2, '2021-01-15', 4000.00, 'ali@example.com', '0123456789'),
('فاطمة سعيد', '1985-06-10', '123456789', 'مدير مشروع', 1, '2019-05-01', 6000.00, 'fatima@example.com', '0123456788'),
('محمد جابر', '1992-02-15', '234567890', 'أخصائي تسويق', 3, '2020-03-10', 3500.00, 'mohammed@example.com', '0123456787'),
('سارة علي', '1988-11-25', '345678901', 'مندوب مبيعات', 4, '2022-07-20', 3000.00, 'sara@example.com', '0123456786');
إدخال بيانات ارتباطات الموظفين بالمشاريع
INSERT INTO EmployeeProjects (EmployeeID, ProjectID)
VALUES
(3, 2), -- محمد جابر يعمل في مشروع تسويق منتج جديد
(4, 2); -- سارة علي تعمل في مشروع تسويق منتج جديد

(1, 1), -- علي أحمد يعمل في مشروع تطوير نظا
(2, 1), -- فاطمة سعيد تعمل في مشروع تطوير نظام
👍1👎1
أسئلة على قاعده البيانات التي سوف نشتغل عليها
1. استعلام للحصول على جميع الموظفين
SELECT * FROM Employees;
2. استعلام للحصول على الموظفين في قسم معين
SELECT * FROM Employees WHERE DepartmentID = 1;
👍1
3.استعلام للحصول على معلومات عن الموظفين مع مسمياتهم الوظيفية
SELECT E.Name, E.JobTitle, J.Description
FROM Employees E
JOIN JobTitles J ON E.JobTitle = J.JobTitle;
1
4. استعلام لحساب متوسط الرواتب في قسم معين
SELECT AVG(Salary) AS AverageSalary
FROM Employees
WHERE DepartmentID = 1;
5. استعلام للحصول على المشاريع التي يعمل عليها موظف معين

SELECT P.ProjectName
FROM Projects P
JOIN EmployeeProjects EP ON P.ProjectID = EP.ProjectID
WHERE EP.EmployeeID = 1;
هذ استعلامات


SELECT e.Name,d.DepartmentName,e.Salary
FROM Employees e inner join Departments d on e.DepartmentID=d.DepartmentID
where e.DepartmentID=2
select sum(Salary) as sumSalary from Employees
—ايجاد اكبر راتب
select max(Salary) as maxSalary from Employees ا=—
—ايجاد اصغر راتب
select min(Salary) as minSalary from Employees
—ايجاد المتوسط لرواتب الموظفين
select avg(Salary) as avgSalary from Employees
voce Empl.ts
368.8 MB
فديو شرح لقاعده بيانات الموظفين
👍4
Media is too big
VIEW IN TELEGRAM
شرح الربط بين الجداول FK and PK
👍5
تمارين على قاعده بيانات الموظفين