关于教学数据库的关系模式如下:
S(S#,SNAME,AGE,SEX)
SC(S#,C#,GRADE)
C(C#,CNAME,TEACHER)
其中,S表示学生,它的各属性依次为学号、姓名、年龄和性别;SC表示成绩,它的各属性依次为学号、课程号和分数;C表示课程,它的各属性依次为课程号、课程名和任课教师。
试用SQL语句完成下列查询:
(1)检索王老师所授课程的课程号和课程名。
(2)检索年龄大于22岁的男学生的学号和姓名。
(3)检索学号为10001的学生所学课程的课程名与任课教师。
(4)检索至少选修王老师所授课程中一门课程的女学生姓名。
(5)检索张同学不学的课程的课程号。
(6)检索至少选修两门课程的学生学号。
(7)检索全部学生都选修的课程的课程号与课程名。
(8)检索选修课程包含王老师所授课程的学生学号。
对应的SQL语句如下: (1)SELECT C#,CNAME FROM C WHERE TEACHER=′王′; (2)SELECT S#,SNAME FROM S WHERE AGE>22 AND SEX=′男′; (3)SELECT CNAME,TEACHER FROM SC,C WHERE SC.C#=C.C#AND S#=′10001′; (4)采用联接查询方式: SELECT SNAME FROM S,SC,C WHERE S.S#=SC.S#AND SC.C#=C.C# AND SEX=′女′ AND TEAC H- ER=′王′; 采用嵌套查询方式: SELECT SNAME FROM S WHERE SEX=′女′ AND S#IN (SELECT S# FROM SC WHERE C#IN (SELECT C# FROM C WHERE TEAC H ER=′王′));