试用SQL查询语句表达下列对教学数据库中三个基本表S、SC、C的查询:
(1)在表C中统计开设课程的教师人数。
(2)求选修C4课程的女学生的平均年龄。
(3)求每个学生选修课程(已有成绩)的门数和平均成绩。
(4)统计每个学生选修课程的门数(超过5门的学生才统计)。要求输出学生学号和选修门数,查询结果按门数降序排列,若门数相同,按学号升序排列。
(5)检索学号比WANG同学大,而年龄比他小的学生姓名。
(6)在表SC中检索成绩为空值的学生学号和课
试用SQL查询语句表达下列对教学数据库中三个基本表S、SC、C的查询:
(1)在表C中统计开设课程的教师人数。
(2)求选修C4课程的女学生的平均年龄。
(3)求每个学生选修课程(已有成绩)的门数和平均成绩。
(4)统计每个学生选修课程的门数(超过5门的学生才统计)。要求输出学生学号和选修门数,查询结果按门数降序排列,若门数相同,按学号升序排列。
(5)检索学号比WANG同学大,而年龄比他小的学生姓名。
(6)在表SC中检索成绩为空值的学生学号和课程号。
(7)检索姓名以L打头的所有学生的姓名和年龄。
(8)求年龄大于女同学平均年龄的男学生姓名和年龄。
(9)求年龄大于所有女同学年龄的男学生姓名和年龄。
【正确答案】:(1) SELECT COUNT (DISTINCT TEACHER) FROM C: (2) SELECT AVG(AGE) FROM S,SC W H ERE S.S#=SC.S#AND C#=′C4′AND SEX=′F′; (3) SELECT COUNT(C#),AVG(GRADE) FROM S,SC WHERE S.S#=C.S#AND GRADE IS NOT NULL GROUP BY S.S#; (4) SELECT S#,COUNT(C#) FROM SC GROUP BY S# HAVING C()UNT(*)>5 ORDER BY 2 DESC,1; (5) SELECT SNAME FROM S WH ERE S#>ALL(SELECT S# FROM S WHERE SNAME=′WANG′) AND AGE(SELECT AVG(AGE) FROM S WHERE SEX=′F′): (9) SELECT SNAME,AGE FROM S WHERE SEX=′M′ AND AGE>ALL(SELECT AGE FROM S WHERE SEX=′F′):
Top