Professional Documents
Culture Documents
Lab 5
Lab 5
-----------------------------------------------------------------------------------
-----------------------------------------------------
-- Insert into STUDENT
INSERT INTO STUDENT VALUES ('S1', 'John Doe', 'Computer Science', '2000-01-01');
INSERT INTO STUDENT VALUES ('S2', 'Jane Smith', 'Electrical Engineering', '2001-02-
02');
INSERT INTO STUDENT VALUES ('S3', 'Alice Johnson', 'Mechanical Engineering', '1999-
03-03');
INSERT INTO STUDENT VALUES ('S4', 'Bob Williams', 'Computer Science', '2002-04-
04');
INSERT INTO STUDENT VALUES ('S5', 'Emily Brown', 'Civil Engineering', '2003-05-
05');
-----------------------------------------------------------------------------------
-------------------------------------------------
SELECT dept
FROM COURSE
GROUP BY dept
HAVING COUNT(DISTINCT (SELECT T.publisher
FROM BOOK_ADOPTION BA
JOIN TEXT T ON BA.book_isbn = T.book_isbn
WHERE BA.course# = COURSE.course#)) = (SELECT COUNT(DISTINCT
publisher) FROM TEXT);
-----------------------------------------------------------------------------------
-----------------------------------------------------
SELECT DISTINCT booktitle
FROM TEXT
WHERE book_isbn IN (SELECT book_isbn FROM BOOK_ADOPTION WHERE course# IN (SELECT
course# FROM ENROLL WHERE regno = 'S1'));
-----------------------------------------------------------------------------------
-----------------------------------------------------
SELECT course#
FROM BOOK_ADOPTION
JOIN TEXT ON BOOK_ADOPTION.book_isbn = TEXT.book_isbn
GROUP BY course#
HAVING COUNT(CASE WHEN publisher = 'Pearson' THEN 1 END) >= 2;
-----------------------------------------------------------------------------------
-----------------------------------------------------
SELECT regno
FROM (SELECT regno, COUNT(book_isbn) AS num_books
FROM ENROLL
GROUP BY regno
ORDER BY num_books DESC)
WHERE ROWNUM = 1;
-----------------------------------------------------------------------------------
-----------------------------------------------------
SELECT publisher, COUNT(*) AS num_books
FROM TEXT
GROUP BY publisher;
-----------------------------------------------------------------------------------
-----------------------------------------------------
SELECT regno
FROM ENROLL E
WHERE NOT EXISTS (SELECT *
FROM BOOK_ADOPTION BA
WHERE BA.course# = E.course#
AND NOT EXISTS (SELECT *
FROM TEXT T
WHERE T.book_isbn = BA.book_isbn
AND T.book_isbn NOT IN (SELECT book_isbn
FROM ENROLL
WHERE regno =
E.regno)));