对于教学数据库的三个基本表
S(S#,SNAME,AGE,SEX)
SC(S#,C#,GRADE)
C(C#,CNAME,TEACHER)
试用SQL的查询语句表达下列查询:
(1)检索LIU老师所授课程的课程号和课程名。
(2)检索年龄大于23岁的男学生的学号和姓名。
(3)检索学号为S3学生所学课程的课程名与任课教师名。
(4)检索至少选修LIU老师所授课程中一门课程的女学生姓名。
(5)检索WANG同学不学的课程的课程号。
(6)检索至少选修两门课程的学生学号。
(7)检索全部学生都选修的课程的课程号与课程名。
(8)检索选修课程包含LIU老师所授课程的学生学号。
(1)SELECT C#,CNAME FROM C WHERE TEACHER=′LIU′: (2)SELECT S#,SNAME FROM S WHERE AGE>2 3 AND SEX=′M′: (3)SELECT CNAME,TEACHER FROM SC,C WHERE SC.C#=C.C# AND S#=′S3′; (4)SELECT SNAME (联接查询方式) FROM S,SC,C WHERE S.S#=SC.S# AND SC.C#=C.C# AND SEX=′F′AND TEACHER=′LIU′: 或:SELECT SNAME (嵌套查询方式) FROM S WHERE SEX=′F′ AND S# IN(SELECT S# FROM SC WHERE C# IN(SELECT C# FROM C WHERETEACHER=′LIU′)); (5)SELECT C# FROM C WHERE NOT EXISTS (SELECT * FROM S,SC WHERE S.S#=SC.S# AND SC.C#=C.C# AND SNAME=′WANG′): (6)SELECT DISTINCT X.S# FROM SC AS X,SC AS Y WHERE X.S#=Y.S# AND X.C#◇Y.C#; (7)SELECT C#,CNAME FROM C WHERE NOT EXISTS (SELECT * FROM S WHERE NOT EXISTS (SELECT * RUM SC WHERE S#=S.S# AND C#=C C#)); (8)SELECT DISTINCT S# FROM SC AS X WHERE NOT EXISTS (SELECT * FROM C WHERE TEACHER=′LIU′ AND NOT EXISTS (SELECT * FROM SC AS Y WHERE Y.S#=X.S# AND Y.C#=C.C#));