0% found this document useful (0 votes)
28 views4 pages

SQL Database Schema Setup

Uploaded by

pr.im12me
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
28 views4 pages

SQL Database Schema Setup

Uploaded by

pr.im12me
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

Table creation:

create database mydb7;


use mydb7;

CREATE TABLE Student (


snum INTEGER PRIMARY KEY,
sname VARCHAR(50),
major VARCHAR(50),
level VARCHAR(10),
age INTEGER
);

CREATE TABLE Class (


name VARCHAR(50),
meets_at TIME,
room VARCHAR(10),
fid INTEGER
);
CREATE TABLE Enrolled (
snum INTEGER,
cname VARCHAR(50),
PRIMARY KEY (snum, cname)
-- FOREIGN KEY (snum) REFERENCES Student(snum),
-- FOREIGN KEY (cname) REFERENCES Class(name)
);
CREATE TABLE Faculty (
fid INTEGER PRIMARY KEY,
fname VARCHAR(50),
deptid INTEGER
);

INSERT INTO Student (snum, sname, major, level, age)


VALUES
(1001, 'Alice Smith', 'Computer Science', 'Senior', 22),
(1002, 'Bob Johnson', 'Mathematics', 'Junior', 20),
(1003, 'Charlie Brown', 'Computer Science', 'Sophomore', 19),
(1004, 'Diana Ross', 'Physics', 'Senior', 23);

INSERT INTO Class (name, meets_at, room, fid)


VALUES
('CS101', '[Link]', 'A101', 1),
('MATH201', '[Link]', 'B202', 2),
('PHYS301', '[Link]', 'C303', 3);
INSERT INTO Enrolled (snum, cname)
VALUES
(1001, 'CS101'),
(1002, 'MATH201'),
(1003, 'CS101'),
(1004, 'PHYS301');

INSERT INTO Faculty (fid, fname, deptid)


VALUES
(1, 'Dr. John Doe', 1),
(2, 'Dr. Jane Smith', 2),
(3, 'Dr. Emily Davis', 3);

1.
Code:
SELECT DISTINCT [Link]
FROM Student s
JOIN Enrolled e ON [Link] = [Link]
JOIN Class c ON [Link] = [Link]
JOIN Faculty f ON [Link] = [Link]
WHERE [Link] = 'Junior' AND [Link] = 'Prof. Z';

Output:

2.
Code:
SELECT MAX([Link])
FROM Student s
LEFT JOIN Enrolled e ON [Link] = [Link]
LEFT JOIN Class c ON [Link] = [Link]
LEFT JOIN Faculty f ON [Link] = [Link]
WHERE [Link] = 'History' OR [Link] = 'Prof. Z';

Output:
3.
Code:
SELECT MAX([Link])
FROM Student s
LEFT JOIN Enrolled e ON [Link] = [Link]
LEFT JOIN Class c ON [Link] = [Link]
LEFT JOIN Faculty f ON [Link] = [Link]
WHERE [Link] = 'History' OR [Link] = 'Prof. Z';

Output:

4.
Code:
SELECT DISTINCT [Link]
FROM Student s
JOIN Enrolled e1 ON [Link] = [Link]
JOIN Class c1 ON [Link] = [Link]
JOIN Enrolled e2 ON [Link] = [Link]
JOIN Class c2 ON [Link] = [Link]
WHERE c1.meets_at = c2.meets_at AND [Link] != [Link];

Output:

5.
Code:
SELECT [Link]
FROM Faculty f
JOIN Class c ON [Link] = [Link]
GROUP BY [Link]
HAVING COUNT(DISTINCT [Link]) = (SELECT COUNT(DISTINCT room) FROM Class);

Output:

You might also like