假设,教学数据库中存在以下三个基本表:
S(S#,SNAME,AGE,SEX)学生表(学生,姓名,年龄,性别)
SC(S#,C#,GRADE) 学生和课程关系表(学号,课程号,成绩)
C(C#,CNAME,TEACHER)课程表(课程号,课程名称,老师)
问题一:检索学习课程号为C2的学生学号和姓名
SELECT S.S#,SNAME
FROM S,SC
WHERE S.S#=SC.S# AND SC.C#='C2'
问题二:检索选修课程名为MATHS的学生学号和姓名
SELECT S.S#,SNAME
FROM S
WHERE S# IN (
SELECT SC.S#
FROM SC
WHERE C# IN (
SELECT C.C#
FROM C
WHERE CNAME='MATHS'));
问题三:检索选修课程为号为C2和C4的学生学号
SELECT SC.S# FROM SC WHERE C#='C2' OR C#='C4'
问题四:求男学生的总人数和平均年龄
SELECT SUM(*),AVG(AGE) FROM S WHERE SEX='男';
问题六:在S中检索姓名以字符D打头的学生姓名
SELECT S.SNAME FROM S WHERE SNAME LIKE 'D%';
问题七:在S中找年龄值为空的学生姓名
SELECT S.SNAME FROM S WHERE AGE is null;
问题八:检索至少不学C2和C4两门课程的学生学号。