The GATE Grind

GATE 2025 CS (CS2) – Question 54

Databases · Relational Model: Relational Algebra, Tuple Calculus, SQL · 2 marks · Multiple select

Consider the following relational schema:

Students (rollno: integer, name: string, age: integer, cgpa: real)
Courses (courseno: integer, cname: string, credits: integer)
Enrolled (rollno: integer, courseno: integer, grade: string)

Which of the following options is/are correct SQL query/queries to retrieve the names of the students enrolled in course number (i.e., courseno) 1470?

  1. SELECT S.name FROM Students S WHERE EXISTS (SELECT * FROM Enrolled E WHERE E.courseno = 1470 AND E.rollno = S.rollno);
  2. SELECT S.name FROM Students S WHERE SIZEOF (SELECT * FROM Enrolled E WHERE E.courseno = 1470 AND E.rollno = S.rollno) > 0;
  3. SELECT S.name FROM Students S WHERE 0 < (SELECT COUNT(*) FROM Enrolled E WHERE E.courseno = 1470 AND E.rollno = S.rollno);
  4. SELECT S.name FROM Students S NATURAL JOIN Enrolled E WHERE E.courseno = 1470;

Practise this question in The GATE Grind →

Show answer and explanation

Correct answer: (A) SELECT S.name FROM Students S WHERE EXISTS (SELECT * FROM Enrolled E WHERE E.courseno = 1470 AND E.rollno = S.rollno);; (C) SELECT S.name FROM Students S WHERE 0 < (SELECT COUNT(*) FROM Enrolled E WHERE E.courseno = 1470 AND E.rollno = S.rollno);; (D) SELECT S.name FROM Students S NATURAL JOIN Enrolled E WHERE E.courseno = 1470;

Explanation

A (EXISTS) and C (correlated COUNT > 0) are valid correlated subqueries. D's natural join on rollno, the only common column, is also correct. B is invalid because SIZEOF is not an SQL operator.