CREATE TABLE Students(
    StudentID INT PRIMARY KEY,
    FirstName VARCHAR(50),
    LastName VARCHAR(50),
    DateOfBirth DATE,
    GradeLevel INT,
    Address VARCHAR(100),
    Email VARCHAR(100),
    Phone VARCHAR(20)
);

CREATE TABLE Courses(
    CourseID INT PRIMARY KEY,
    CourseName VARCHAR(100),
    Description TEXT,
    StartDate DATE,
    EndDate DATE
);

CREATE TABLE Enrollments(
    EnrollmentID INT PRIMARY KEY,
    StudentID INT,
    CourseID INT,
    EnrollmentDate DATE,
    FOREIGN KEY (StudentID) REFERENCES Students(StudentID),
    FOREIGN KEY (CourseID) REFERENCES Courses(CourseID)
);

CREATE TABLE Teachers(
    TeacherID INT PRIMARY KEY,
    FirstName VARCHAR(50),
    LastName VARCHAR(100),
    Email VARCHAR(100),
    Phone VARCHAR(20)
);


CREATE TABLE Classes(
    ClassID INT PRIMARY KEY,
    TeacherID INT,
    CourseID INT,
    Schedule VARCHAR(100),
    FOREIGN KEY (TeacherID) REFERENCES Teachers(TeacherID),
    FOREIGN KEY (CourseID) REFERENCES Courses(CourseID)
);

CREATE TABLE Fees(
    FeeID INT PRIMARY KEY,
    StudentID INT,
    CourseID INT,
    Amount Decimal (10, 2),
    PaymentDate DATE,
    FOREIGN KEY (StudentID) REFERENCES Students(StudentID),
    FOREIGN KEY (CourseID) REFERENCES Courses(CourseID)
);

INSERT INTO Students (StudentID, Firstname, LastName, DateOfBirth, GradeLevel, Address, Email, Phone)
VALUES

(1, 'Daniel', 'Macagnino', '2015-07-07', 7, 'E22 8CR', 'daniel.macagnino@gmail.com','18364184357'),
(2, 'Hiliny', 'Ashworth', '2014-11-23', 8, 'E12 32Y', 'hiliny.ashworth@gmail.com','12632237437'),
(3, 'Daniel', 'Walker', '2015-05-16', 7, '382 Forest Gate St', 'daniel.walker@gmail.com','27455246276'),
(4, 'Shriyan Reddy', 'Kallem', '2015-06-06', 7, 'E15 2NS', 'shriyanreddy369@gmail.com','62324387645'),
(5, 'Thomas', 'Ashworth', '2015-03-08', 7, '5ES 8YA', 'thomas.ashworth@gmail.com','71562487526');


INSERT INTO Courses (CourseID, CourseName, Description, StartDate, EndDate)
VALUES
    
(1, 'Basic Mathematics', 'Fundamental math concepts', '2026-01-15', '2026-03-15'),
(2, 'Coding Fundamentals', 'Introduction to Programming', '2026-02-10', '2026-04-10'),
(3, 'Art and Creativity', 'Developing artistic skills', '2026-01-25', '2026-03-25'),
(4, 'Jungle Tour', 'Exploring and learning about the wild', '2025-12-31', '2026-02-28'),
(5, 'Space Miracles', 'Learning about the mysteries of space', '2026-02-06', '2026-04-21');

INSERT INTO Enrollments(EnrollmentID, StudentID, CourseID, EnrollmentDate)
VALUES
(1, 1, 1, '2025-08-22'),
(2, 2, 2, '2026-06-04'),
(3, 3, 3, '2026-01-16'),
(4, 4, 4, '2025-08-22'),
(5, 5, 5, '2026-10-11');

INSERT INTO Teachers (TeacherID, FirstName, LastName, Email, Phone)
VALUES

(1, 'Georgia', 'Greasil', 'georgia.greasil@gmail.com', '75153218743'),
(2, 'Farha', 'Shaikh', 'farha.bright@gmail.com', '698635242427'),
(3, 'Emma', 'Oldham', 'emma.oldham@gmail.com', '16654761254'),
(4, 'Jaden', 'Fernandes', 'jaden.fernandes@gmail.com', '24674175435'),
(5, 'Sabastian', 'Oswald', 'sabastian.oswald@gmail.com', '13245575844');

    
INSERT INTO Classes (ClassID, TeacherID, CourseID, Schedule)
VALUES
    
(1, 1, 1, 'Mon/Wed 9:00 AM - 11:30 AM'),
(2, 2, 2, 'Tue/Thu 2:00 PM - 3:30 PM'),
(3, 3, 3, 'Mon/Wed 3:00 PM - 4:30 PM');


INSERT INTO Fees (FeeID, StudentID, CourseID, Amount, PaymentDate)
VALUES
    
(1, 1, 1, 150.00, '2023-01-12'),
(2, 2, 2, 180.00, '2023-02-08'),
(3, 3, 3, 160.00, '2023-02-20'),
(4, 4, 2, 175.00, '2023-03-10'),
(5, 5, 3, 140.00, '2023-03-22');


-- SQL Queries
-- 1. List all students:

SELECT * FROM Students;

-- 2. List all courses:

SELECT * FROM Courses;

-- 3.  List all enrolled students and their courses:

SELECT s.FirstName, s.LastName, c.CourseName
FROM Students AS s
JOIN Enrollments AS e ON s.StudentID = e.StudentID
JOIN Courses AS c ON e.CourseID = c.CourseID;

-- 4 Find students enrolled in a specific courses 

SELECT s.FirstName, s.LastName
FROM Students AS s 
JOIN Enrollments AS e ON s.StudentID = e.StudentID
JOIN Courses AS c ON e.CourseID = c.CourseID
WHERE c.CourseName = 'Coding Fundamentals';

-- 5. List teachers and their assigned classes:
SELECT t.FirstName, t.LastName, cl.ClassID, c.CourseName
FROM Teachers AS t
JOIN Classes AS cl ON t.TeacherID = cl.TeacherID
JOIN Courses AS c ON cl.CourseID = c.CourseID;

-- 6. Find the course schedule for a specific student
SELECT c.CourseName, cl.Schedule
FROM Students AS s
JOIN Enrollments AS e ON s.StudentID = e.StudentID
JOIN Courses AS c ON e.CourseID = c.CourseID
JOIN Classes AS cl ON c.CourseID = cl.CourseID
WHERE s.StudentID = 1;

-- 7. List all courses with the number of students enrolled in each
SELECT c.CourseName, COUNT(e.StudentID) AS NumStudentsEnrolled
FROM Courses AS c
LEFT JOIN Enrollments AS e ON c.CourseID = e.CourseID
GROUP BY c.CourseName;

-- 8. Find the total fee collected from a specific student
SELECT SUM(f.Amount) AS TotalFeesCollected
FROM Fees AS f
WHERE f.StudentID = 3;

-- 9. Calculate the total number of students enrolled in each grade level:
SELECT GradeLevel, COUNT(*) AS NumStudents
FROM Students
GROUP BY GradeLevel;

-- 10. Calculate the total fees collected from students:
SELECT SUM(Amount) AS TotalFeesCollected
FROM Fees;























































































































































































































































































































Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: