Sanket - Assignment 9
Sanket - Assignment 9
1),
7),
13),
19),
25),
("Computer
("Computer
("Computer
("Computer
Science",
Science",
Science",
Science",
31),
32),
33),
34);
7.TABLE NAME:ENROLL
Name
Null?
Type
------------------------------- -------- ---@SID
NOT NULL VARCHAR2(15)
@DNAME
VARCHAR2(15)
CNO
NOT NULL VARCHAR2(4)
SECTNO
VARCHAR2(4)
GRADE
CHAR(1)
CREATE TABLE enroll
(
sid VARCHAR(15) NOT NULL,
dname VARCHAR(25),
cno VARCHAR(4) NOT NULL,
sectno VARCHAR(4),
grade CHAR(1),
FOREIGN KEY (sid) REFERENCES student(sid),
FOREIGN KEY (dname) REFERENCES dept(dname),
FOREIGN KEY (cno) REFERENCES course(cno),
FOREIGN KEY (sectno) REFERENCES section(sectno) );
INSERT INTO enroll
VALUES
(1,"Civil Engineering",111, 15, "A"),
(1,"Civil Engineering", 333, 16, "A"),
(1,"Mathematics", 312, 11, "A"),
(7,"Civil Engineering", 111, 16, "A"),
(7,"Civil Engineering", 333, 17, "B"),
(7,"Physics", 343, 4, "B"),
(13, "Civil Engineering", 111, 16, "A"),
(13, "Music", 154, 10, "C"),
(19, "Civil Engineering", 111, 16, "A"),
(19, "Economics", 112, 18, "D"),
(19, "Biology", 332, 3, "A"),
(16, "Mathematics", 312, 12, "A"),
(16, "Mathematics", 224, 13, "B"),
(10, "Mathematics", 312, 11, "B"),
(10, "Mathematics", 224, 14, "B"),
(10, "Physics", 543, 6, "B"),
(22, "Mathematics", 224, 12, "A"),
QUESTIONS:
1)PRINT THE NUMBER OF PROFESSORS WHO WORK IN DEPARTMENTS
THAT HAVE FEWER THAN 50 PhD STUDENTS
SELECT count(p.pname) AS NuMBER_OF_PROFESSORS
FROM dept AS d
INNER JOIN prof AS p
ON d.dname=p.dname AND numphds<50;
2)PRINT THE NAMES OF THE STUDENTS WITH THE LOWEST GPA
SELECT sid ,sname
FROM student
ORDER BY gpa LIMIT 1;
3)FOR EACH COMPUTER SCIENCE CLASS, PRINT THE CLASS
NUMBER,SECTION NO. AND THE AVERAGE GPA OF THE STUDENTS
ENROLLED IN THE CLASS
SELECT c.cno, sectno,avg(gpa) AS GPA
FROM course AS c
INNER JOIN enroll AS e
ON c.cno=e.cno AND c.dname='Computer Science'
INNER JOIN student AS s
on e.sid=s.sid
GROUP BY e.cno,e.sectno;
4)PRINT THE NAMES AND SECTION NUMBERS OF ALL CLASSES WITH
MORE THAN SIX STUDENTS ENROLLED IN THEM
SELECT c.cname, e.sectno ,e.cno
from course as c
inner join enroll as e
on c.cno=e.cno
Group by e.cno ,e.sectno
HAVING count(e.cno)>6;
5) PRINT THE NAME(S) AND SID(S) OF THE STUDENT(S) ENROLLED
IN THE MOST CLASSES.
SELECT s.sname,s.sid
FROM student AS s
INNER JOIN enroll AS e
ON e.sid=s.sid