学生表S、课程表C和学生选课表SC,它们的结构如下,使用SQL完成下列操作。
S (S#, SN, SEX, AGE, DEPT)
C (C#, CN, TEACHER )
SC (S#, C#, GRADE)
其中,S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程号,CN为课程名,TEACHER为任课教师,GRADE为成绩。1、 用SQL找出“程序设计”课程成绩在90分以上的学生姓名。2、 检索选修课程“C2”的学生中成绩最高的学生的学号。3、 检索选修4门以上课程的学生的总成绩(不统计不及格的课程),并要求按总成绩的降序排列出来。4、 检索不学C6的男学生的学号和姓名(S#, SN)。5、 从SC表中把吴老师的女学生选课元组删去。6、 把吴老师的女同学选课成绩增加4%
S (S#, SN, SEX, AGE, DEPT)
C (C#, CN, TEACHER )
SC (S#, C#, GRADE)
其中,S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程号,CN为课程名,TEACHER为任课教师,GRADE为成绩。1、 用SQL找出“程序设计”课程成绩在90分以上的学生姓名。2、 检索选修课程“C2”的学生中成绩最高的学生的学号。3、 检索选修4门以上课程的学生的总成绩(不统计不及格的课程),并要求按总成绩的降序排列出来。4、 检索不学C6的男学生的学号和姓名(S#, SN)。5、 从SC表中把吴老师的女学生选课元组删去。6、 把吴老师的女同学选课成绩增加4%
C (C#, CN, TEACHER )
SC (S#, C#, GRADE)
其中,S#为学号,SN为姓名,SEX为性别,AGE为年龄,DEPT为系别,C#为课程号,CN为课程名,TEACHER为任课教师,GRADE为成绩。1、 用SQL找出“程序设计”课程成绩在90分以上的学生姓名。
SELECT SN
FROM SC
JOIN C ON SC.C#=C.C#
JOIN S ON SC.S#=S.S#
WHERE CN='程序设计' AND GRADE>90 2、 检索选修课程“C2”的学生中成绩最高的学生的学号。
SELECT TOP 1 S#
FROM SC
JOIN C ON SC.C#=C.C#
WHERE CN='C2'
ORDER BY GRADE DESC3、 检索选修4门以上课程的学生的总成绩(不统计不及格的课程),并要求按总成绩的降序排列出来。
SELECT S#, SUMGRADE = SUM(GRADE)
FROM SC
WHERE GRADE>=60
GROUP BY S#
HAVING COUNT(1)>=4
ORDER BY SUMGRADE DESC4、 检索不学C6的男学生的学号和姓名(S#, SN)。
SELECT S#, SN
FROM S
WHERE NOT EXISTS (
SELECT 1
FROM SC
JOIN C ON C.C#=SC.C#
WHERE CN = 'C6' AND SC.S#=S.S#)5、 从SC表中把吴老师的女学生选课元组删去。
DELETE SC
FROM SC
JOIN C ON SC.C#=C.C#
JOIN S ON SC.S#=S.S#
WHERE TEACHER='吴老师' AND SEX='女'6、 把吴老师的女同学选课成绩增加4%
UPDATE SC SET
GRADE = GRADE*1.04
FROM SC
JOIN C ON SC.C#=C.C#
JOIN S ON SC.S#=S.S#
WHERE TEACHER='吴老师' AND SEX='女'