Case Study - 2 DBMS
Case Study - 2 DBMS
Scenario: You are managing a database for a fitness center. The database tracks members, classes,
trainers, and attendance.
Tables:
• Members (MemberID, Name, JoinDate, MembershipType)
• Classes (ClassID, ClassName, TrainerID, Schedule)
• Trainers (TrainerID, Name, Specialization)
• Attendance (AttendanceID, MemberID, ClassID, AttendanceDate)
Questions:
3. Insert sample data into each table (at least 5 records per table).
-- Insert into Members table
INSERT INTO Members (MemberID, Name, JoinDate, MembershipType)
VALUES
(1, 'John Doe', '2023-01-01', 'Standard'),
(2, 'Jane Smith', '2023-02-10', 'Premium'),
(3, 'Mike Brown', '2023-03-05', 'Standard'),
(4, 'Sarah Johnson', '2023-04-20', 'Basic'),
(5, 'Emily Davis', '2023-05-18', 'Premium');
8. Retrieve the names of members who have attended more than 5 classes.
SELECT m.Name
FROM Members m
JOIN Attendance a ON m.MemberID = a.MemberID
GROUP BY m.MemberID
HAVING COUNT(a.AttendanceID) > 5;
9. List the classes that have been attended by members with 'Premium' membership.
SELECT c.ClassName
FROM Classes c
JOIN Attendance a ON c.ClassID = a.ClassID
JOIN Members m ON a.MemberID = m.MemberID
WHERE m.MembershipType = 'Premium';
10. List all classes along with the names of the trainers conducting them.
SELECT c.ClassName, t.Name AS TrainerName
FROM Classes c
JOIN Trainers t ON c.TrainerID = t.TrainerID;
11. Retrieve the trainer name of Trainer using IN & BETWEEN CLAUSE
SELECT Name
FROM Trainers
WHERE TrainerID IN (1, 2, 3)
AND TrainerID BETWEEN 1 AND 3;
13. Display all classes that have been attended by members with 'Premium' membership (use
UNION).
SELECT c.ClassName
FROM Classes c
JOIN Attendance a ON c.ClassID = a.ClassID
JOIN Members m ON a.MemberID = m.MemberID
WHERE m.MembershipType = 'Premium'
UNION
SELECT c.ClassName
FROM Classes c
JOIN Attendance a ON c.ClassID = a.ClassID
JOIN Members m ON a.MemberID = m.MemberID
WHERE m.MembershipType = 'Premium';
14. Find members who have attended all classes available (use INTERSECT).
SELECT m.Name
FROM Members m
JOIN Attendance a ON m.MemberID =
a.MemberID
JOIN Classes c ON a.ClassID = c.ClassID
GROUP BY m.Name