======================== Database Lab 2 Question ========================
1 . Design a Schema consisting of at least 4 relations, Implement it and perform and entry
2 . Write 5 queries based on your database design
=========================================================================
==================== Database BUBT Management System ====================
-- Step 1 : ( create databse)
CREATE DATABASE bubt_management
-- Step 2 : ( create students databse)
CREATE TABLE Students (
student_id INT PRIMARY KEY,
first_name VARCHAR( 50 ) ,
last_name VARCHAR( 50 ) ,
email VARCHAR( 100 ) ,
date_of_birth DATE,
enrollment_date DATE
) ;
-- Step 3 : ( create professors databse)
CREATE TABLE Professors (
professor_id INT PRIMARY KEY,
first_name VARCHAR( 50 ) ,
last_name VARCHAR( 50 ) ,
email VARCHAR( 100 ) ,
department VARCHAR( 50 )
) ;
-- Step 4 : ( create courses databse)
CREATE TABLE Courses (
course_id INT PRIMARY KEY,
course_name VARCHAR( 100 ) ,
credits INT,
semester VARCHAR( 20 ) ,
professor_id INT,
FOREIGN KEY ( professor_id) REFERENCES Professors( professor_id)
) ;
-- Step 4 : ( create courses databse)
CREATE TABLE Enrollments (
enrollment_id INT PRIMARY KEY,
student_id INT,
course_id INT,
grade CHAR( 2 ) ,
FOREIGN KEY ( student_id) REFERENCES Students( student_id) ,
FOREIGN KEY ( course_id) REFERENCES Courses( course_id)
) ;
=========================================================================
============================== Insert Data ==============================
-- 1 . Insert into Students
INSERT INTO Students ( student_id, first_name, last_name, email, date_of_birth, enrollment_date) VALUES
( 1 , 'John' , 'Doe' , 'john.doe@example.com' , '2001-05-15' , '2020-08-25' ) ,
( 2 , 'Jane' , 'Smith' , 'jane.smith@example.com' , '2000-03-22' , '2019-09-12' ) ,
( 3 , 'Alice' , 'Johnson' , 'alice.johnson@example.com' , '2002-11-30' , '2021-01-17' ) ,
( 4 , 'Bob' , 'Brown' , 'bob.brown@example.com' , '2001-07-04' , '2020-02-14' ) ,
( 5 , 'Charlie' , 'Davis' , 'charlie.davis@example.com' , '2000-09-08' , '2018-09-10' ) ;
-- 2 . Insert into Professors
INSERT INTO Professors ( professor_id, first_name, last_name, email, department) VALUES
( 1 , 'Dr. William' , 'Taylor' , 'william.taylor@bubt.edu' , 'Computer Science' ) ,
( 2 , 'Dr. Emily' , 'Adams' , 'emily.adams@bubt.edu' , 'Mathematics' ) ,
( 3 , 'Dr. Sarah' , 'White' , 'sarah.white@bubt.edu' , 'Physics' ) ,
( 4 , 'Dr. Michael' , 'Clark' , 'michael.clark@bubt.edu' , 'Chemistry' ) ,
( 5 , 'Dr. Robert' , 'Lee' , 'robert.lee@bubt.edu' , 'Biology' ) ;
-- 3 . Insert into Courses
INSERT INTO Courses ( course_id, course_name, credits, semester, professor_id) VALUES
( 101 , 'Introduction to Programming' , 3 , 'Fall 2025' , 1 ) ,
( 102 , 'Calculus I' , 4 , 'Spring 2025' , 2 ) ,
( 103 , 'Physics Fundamentals' , 3 , 'Fall 2025' , 3 ) ,
( 104 , 'Organic Chemistry' , 3 , 'Spring 2025' , 4 ) ,
( 105 , 'Cell Biology' , 3 , 'Fall 2025' , 5 ) ;
-- 4 . Insert into Enrollments
INSERT INTO Enrollments ( enrollment_id, student_id, course_id, grade) VALUES
( 1 , 1 , 101 , 'A' ) ,
( 2 , 2 , 102 , 'B' ) ,
( 3 , 3 , 103 , 'A' ) ,
( 4 , 4 , 104 , 'C' ) ,
( 5 , 5 , 105 , 'B' ) ;
=========================================================================
================================= Query =================================
-- 1 . Get all students with their enrollment dates
SELECT student_id, first_name, last_name, enrollment_date
FROM Students;
-- 2 .Get all courses taught by a specific professor
SELECT course_id, course_name, credits, semester
FROM Courses
WHERE professor_id = 1 ;
-- 3 . Get the list of students enrolled in a specific course
SELECT s.student_id , s.first_name , s.last_name , e.grade
FROM Students s
JOIN Enrollments e ON s.student_id = e.student_id
WHERE e.course_id = 101 ;
-- 4 . Get all professors in the 'Computer Science' department
SELECT professor_id, first_name, last_name, email
FROM Professors
WHERE department = 'Computer Science' ;
-- 5 . Get all students with their grades and the courses they are enrolled in
SELECT s.first_name , s.last_name , c.course_name , e.grade
FROM Students s
JOIN Enrollments e ON s.student_id = e.student_id
JOIN Courses c ON e.course_id = c.course_id ;
=========================================================================
PT09PT09PT09PT09PT09PT09PT09PT09IERhdGFiYXNlIExhYiAyIFF1ZXN0aW9uID09PT09PT09PT09PT09PT09PT09PT09PQoxLiBEZXNpZ24gYSBTY2hlbWEgY29uc2lzdGluZyBvZiBhdCBsZWFzdCA0IHJlbGF0aW9ucywgSW1wbGVtZW50IGl0IGFuZCBwZXJmb3JtIGFuZCBlbnRyeQoyLiBXcml0ZSA1IHF1ZXJpZXMgYmFzZWQgb24geW91ciBkYXRhYmFzZSBkZXNpZ24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKCj09PT09PT09PT09PT09PT09PT09IERhdGFiYXNlIEJVQlQgTWFuYWdlbWVudCBTeXN0ZW0gPT09PT09PT09PT09PT09PT09PT0KCi0tIFN0ZXAgMTogKGNyZWF0ZSBkYXRhYnNlKQoJQ1JFQVRFIERBVEFCQVNFIGJ1YnRfbWFuYWdlbWVudAoKLS0gU3RlcCAyOiAoY3JlYXRlIHN0dWRlbnRzIGRhdGFic2UpCQoJQ1JFQVRFIFRBQkxFIFN0dWRlbnRzICgKCSAgICBzdHVkZW50X2lkIElOVCBQUklNQVJZIEtFWSwKCSAgICBmaXJzdF9uYW1lIFZBUkNIQVIoNTApLAoJICAgIGxhc3RfbmFtZSBWQVJDSEFSKDUwKSwKCSAgICBlbWFpbCBWQVJDSEFSKDEwMCksCgkgICAgZGF0ZV9vZl9iaXJ0aCBEQVRFLAoJICAgIGVucm9sbG1lbnRfZGF0ZSBEQVRFCgkpOwoKLS0gU3RlcCAzOiAoY3JlYXRlIHByb2Zlc3NvcnMgZGF0YWJzZSkKCUNSRUFURSBUQUJMRSBQcm9mZXNzb3JzICgKCSAgICBwcm9mZXNzb3JfaWQgSU5UIFBSSU1BUlkgS0VZLAoJICAgIGZpcnN0X25hbWUgVkFSQ0hBUig1MCksCgkgICAgbGFzdF9uYW1lIFZBUkNIQVIoNTApLAoJICAgIGVtYWlsIFZBUkNIQVIoMTAwKSwKCSAgICBkZXBhcnRtZW50IFZBUkNIQVIoNTApCgkpOwoJCi0tIFN0ZXAgNDogKGNyZWF0ZSBjb3Vyc2VzIGRhdGFic2UpCglDUkVBVEUgVEFCTEUgQ291cnNlcyAoCgkgICAgY291cnNlX2lkIElOVCBQUklNQVJZIEtFWSwKCSAgICBjb3Vyc2VfbmFtZSBWQVJDSEFSKDEwMCksCgkgICAgY3JlZGl0cyBJTlQsCgkgICAgc2VtZXN0ZXIgVkFSQ0hBUigyMCksCgkgICAgcHJvZmVzc29yX2lkIElOVCwKCSAgICBGT1JFSUdOIEtFWSAocHJvZmVzc29yX2lkKSBSRUZFUkVOQ0VTIFByb2Zlc3NvcnMocHJvZmVzc29yX2lkKQoJKTsKCQotLSBTdGVwIDQ6IChjcmVhdGUgY291cnNlcyBkYXRhYnNlKQoJQ1JFQVRFIFRBQkxFIEVucm9sbG1lbnRzICgKCSAgICBlbnJvbGxtZW50X2lkIElOVCBQUklNQVJZIEtFWSwKCSAgICBzdHVkZW50X2lkIElOVCwKCSAgICBjb3Vyc2VfaWQgSU5ULAoJICAgIGdyYWRlIENIQVIoMiksCgkgICAgRk9SRUlHTiBLRVkgKHN0dWRlbnRfaWQpIFJFRkVSRU5DRVMgU3R1ZGVudHMoc3R1ZGVudF9pZCksCgkgICAgRk9SRUlHTiBLRVkgKGNvdXJzZV9pZCkgUkVGRVJFTkNFUyBDb3Vyc2VzKGNvdXJzZV9pZCkKCSk7Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gSW5zZXJ0IERhdGEgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tIDEuIEluc2VydCBpbnRvIFN0dWRlbnRzCglJTlNFUlQgSU5UTyBTdHVkZW50cyAoc3R1ZGVudF9pZCwgZmlyc3RfbmFtZSwgbGFzdF9uYW1lLCBlbWFpbCwgZGF0ZV9vZl9iaXJ0aCwgCQllbnJvbGxtZW50X2RhdGUpIFZBTFVFUwoJKDEsICdKb2huJywgJ0RvZScsICdqb2huLmRvZUBleGFtcGxlLmNvbScsICcyMDAxLTA1LTE1JywgJzIwMjAtMDgtMjUnKSwKCSgyLCAnSmFuZScsICdTbWl0aCcsICdqYW5lLnNtaXRoQGV4YW1wbGUuY29tJywgJzIwMDAtMDMtMjInLCAnMjAxOS0wOS0xMicpLAoJKDMsICdBbGljZScsICdKb2huc29uJywgJ2FsaWNlLmpvaG5zb25AZXhhbXBsZS5jb20nLCAnMjAwMi0xMS0zMCcsICcyMDIxLTAxLTE3JyksCgkoNCwgJ0JvYicsICdCcm93bicsICdib2IuYnJvd25AZXhhbXBsZS5jb20nLCAnMjAwMS0wNy0wNCcsICcyMDIwLTAyLTE0JyksCgkoNSwgJ0NoYXJsaWUnLCAnRGF2aXMnLCAnY2hhcmxpZS5kYXZpc0BleGFtcGxlLmNvbScsICcyMDAwLTA5LTA4JywgJzIwMTgtMDktMTAnKTsKCgoKLS0gMi4gSW5zZXJ0IGludG8gUHJvZmVzc29ycwoJSU5TRVJUIElOVE8gUHJvZmVzc29ycyAocHJvZmVzc29yX2lkLCBmaXJzdF9uYW1lLCBsYXN0X25hbWUsIGVtYWlsLCBkZXBhcnRtZW50KSBWQUxVRVMKCSgxLCAnRHIuIFdpbGxpYW0nLCAnVGF5bG9yJywgJ3dpbGxpYW0udGF5bG9yQGJ1YnQuZWR1JywgJ0NvbXB1dGVyIFNjaWVuY2UnKSwKCSgyLCAnRHIuIEVtaWx5JywgJ0FkYW1zJywgJ2VtaWx5LmFkYW1zQGJ1YnQuZWR1JywgJ01hdGhlbWF0aWNzJyksCgkoMywgJ0RyLiBTYXJhaCcsICdXaGl0ZScsICdzYXJhaC53aGl0ZUBidWJ0LmVkdScsICdQaHlzaWNzJyksCgkoNCwgJ0RyLiBNaWNoYWVsJywgJ0NsYXJrJywgJ21pY2hhZWwuY2xhcmtAYnVidC5lZHUnLCAnQ2hlbWlzdHJ5JyksCgkoNSwgJ0RyLiBSb2JlcnQnLCAnTGVlJywgJ3JvYmVydC5sZWVAYnVidC5lZHUnLCAnQmlvbG9neScpOwoKCgotLSAzLiBJbnNlcnQgaW50byBDb3Vyc2VzCglJTlNFUlQgSU5UTyBDb3Vyc2VzIChjb3Vyc2VfaWQsIGNvdXJzZV9uYW1lLCBjcmVkaXRzLCBzZW1lc3RlciwgcHJvZmVzc29yX2lkKSBWQUxVRVMKCSgxMDEsICdJbnRyb2R1Y3Rpb24gdG8gUHJvZ3JhbW1pbmcnLCAzLCAnRmFsbCAyMDI1JywgMSksCgkoMTAyLCAnQ2FsY3VsdXMgSScsIDQsICdTcHJpbmcgMjAyNScsIDIpLAoJKDEwMywgJ1BoeXNpY3MgRnVuZGFtZW50YWxzJywgMywgJ0ZhbGwgMjAyNScsIDMpLAoJKDEwNCwgJ09yZ2FuaWMgQ2hlbWlzdHJ5JywgMywgJ1NwcmluZyAyMDI1JywgNCksCgkoMTA1LCAnQ2VsbCBCaW9sb2d5JywgMywgJ0ZhbGwgMjAyNScsIDUpOwoKCgotLSA0LiBJbnNlcnQgaW50byBFbnJvbGxtZW50cwoJSU5TRVJUIElOVE8gRW5yb2xsbWVudHMgKGVucm9sbG1lbnRfaWQsIHN0dWRlbnRfaWQsIGNvdXJzZV9pZCwgZ3JhZGUpIFZBTFVFUwoJKDEsIDEsIDEwMSwgJ0EnKSwKCSgyLCAyLCAxMDIsICdCJyksCgkoMywgMywgMTAzLCAnQScpLAoJKDQsIDQsIDEwNCwgJ0MnKSwKCSg1LCA1LCAxMDUsICdCJyk7Cgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gUXVlcnkgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tIDEuIEdldCBhbGwgc3R1ZGVudHMgd2l0aCB0aGVpciBlbnJvbGxtZW50IGRhdGVzCglTRUxFQ1Qgc3R1ZGVudF9pZCwgZmlyc3RfbmFtZSwgbGFzdF9uYW1lLCBlbnJvbGxtZW50X2RhdGUKCUZST00gU3R1ZGVudHM7CgoKLS0gMi5HZXQgYWxsIGNvdXJzZXMgdGF1Z2h0IGJ5IGEgc3BlY2lmaWMgcHJvZmVzc29yCglTRUxFQ1QgY291cnNlX2lkLCBjb3Vyc2VfbmFtZSwgY3JlZGl0cywgc2VtZXN0ZXIKCUZST00gQ291cnNlcwoJV0hFUkUgcHJvZmVzc29yX2lkID0gMTsKCgotLSAzLiBHZXQgdGhlIGxpc3Qgb2Ygc3R1ZGVudHMgZW5yb2xsZWQgaW4gYSBzcGVjaWZpYyBjb3Vyc2UKCVNFTEVDVCBzLnN0dWRlbnRfaWQsIHMuZmlyc3RfbmFtZSwgcy5sYXN0X25hbWUsIGUuZ3JhZGUKCUZST00gU3R1ZGVudHMgcwoJSk9JTiBFbnJvbGxtZW50cyBlIE9OIHMuc3R1ZGVudF9pZCA9IGUuc3R1ZGVudF9pZAoJV0hFUkUgZS5jb3Vyc2VfaWQgPSAxMDE7CgoKLS0gNC4gR2V0IGFsbCBwcm9mZXNzb3JzIGluIHRoZSAnQ29tcHV0ZXIgU2NpZW5jZScgZGVwYXJ0bWVudAoJU0VMRUNUIHByb2Zlc3Nvcl9pZCwgZmlyc3RfbmFtZSwgbGFzdF9uYW1lLCBlbWFpbAoJRlJPTSBQcm9mZXNzb3JzCglXSEVSRSBkZXBhcnRtZW50ID0gJ0NvbXB1dGVyIFNjaWVuY2UnOwoKCi0tIDUuIEdldCBhbGwgc3R1ZGVudHMgd2l0aCB0aGVpciBncmFkZXMgYW5kIHRoZSBjb3Vyc2VzIHRoZXkgYXJlIGVucm9sbGVkIGluCglTRUxFQ1Qgcy5maXJzdF9uYW1lLCBzLmxhc3RfbmFtZSwgYy5jb3Vyc2VfbmFtZSwgZS5ncmFkZQoJRlJPTSBTdHVkZW50cyBzCglKT0lOIEVucm9sbG1lbnRzIGUgT04gcy5zdHVkZW50X2lkID0gZS5zdHVkZW50X2lkCglKT0lOIENvdXJzZXMgYyBPTiBlLmNvdXJzZV9pZCA9IGMuY291cnNlX2lkOwoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ==