'i have created some sql queries for mysql php my admin but i still have doubts

(1) Use GROUP BY and NATURAL JOIN to show the lecturer names and the number of courses taught by each lecturer.
(11) Use GROUP BY to show the course IDs, course names and the number of students taking each course.
(111) Use GROUP BY to show the student IDs, student names and the average grade of each student whose average grade is lower than 2. It is assumed that all courses carry the same credit weight and there are five possible grades with the following integer values: 0, 1, 2, 3, and 4.
(iv) Use a correlated sub-query with EXISTS to show the student names and student IDs of the students who have a course grade less than 2.

WHAT I HAVE ATTEMPTED

--i)
SELECT DISTINCT L.LNAME, COUNT(COURSEID) COURSE_COUNT from LECTURER L, COURSE C
WHERE L.LECTURERID=C.LECTURERID
GROUP BY LNAME;



--ii)
SELECT DISTINCT  C.COURSEID, C.CNAME, COUNT(T.STUDENTID) COURSE_COUNT FROM COURSE C, COURSE_TAKING T
WHERE C.COURSEID=T.COURSEID
GROUP BY C.COURSEID, C.CNAME;


--iii)
SELECT DISTINCT S.STUDENTID, S.SNAME, AVG(C.GRADE) AVG_GRADE FROM STUDENT S, COURSE_TAKING C
WHERE S.STUDENTID=C.STUDENTID
GROUP BY S.STUDENTID, S.SNAME HAVING  AVG(C.GRADE)<2;

--iv)
SELECT DISTINCT S.STUDENTID, S.SNAME FROM STUDENT S 
WHERE  EXISTS ( SELECT * FROM COURSE_TAKING C WHERE C.GRADE<2);

SQL QUERIES

CREATE TABLE STUDENT (

  SNAME VARCHAR2(20) NOT NULL,

  STUDENTID INT NOT NULL,

  COHORT INT NOT NULL,

  HKID VARCHAR2(8) NOT NULL,

  BDATE DATE NOT NULL,

  ADDRESS_STU VARCHAR2(20) NOT NULL,

  DNUM INT NOT NULL,

  PRIMARY KEY (HKID),

  FOREIGN KEY (DNUM) REFERENCES DEPARTMENT(DNUM)

);



CREATE TABLE LECTURER (

  LNAME VARCHAR2(20) NOT NULL,

  LECTURERID INT NOT NULL,

  DNUM INT NOT NULL,

  PRIMARY KEY (LECTURERID),

  FOREIGN KEY (DNUM) REFERENCES DEPARTMENT(DNUM)

);



CREATE TABLE DEPARTMENT (

  DNAME VARCHAR2(20) NOT NULL,

  DNUM INT NOT NULL,

  HEAD VARCHAR2(20) NOT NULL,

  ADDRESS_DEPT VARCHAR2(20) NOT NULL,

  PRIMARY KEY (DNUM)

);



CREATE TABLE COURSE (

  CNAME VARCHAR2(20) NOT NULL,

  COURSEID INT NOT NULL,

  DNUM INT NOT NULL,

  CLEVEL INT NOT NULL,

  LECTURERID INT NOT NULL,

  PRIMARY KEY (COURSEID),

  FOREIGN KEY (DNUM) REFERENCES DEPARTMENT(DNUM),

  FOREIGN KEY (LECTURERID) REFERENCES LECTURER(LECTURERID)

);



CREATE TABLE COURSE_TAKING (

  STUDENTID INT NOT NULL,

  COURSEID INT NOT NULL,

  GRADE INT NOT NULL,

  PRIMARY KEY (STUDENTID, COURSEID),

  FOREIGN KEY (STUDENTID) REFERENCES STUDENT(STUDENTID),

  FOREIGN KEY (COURSEID) REFERENCES COURSE(COURSEID)

);


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source