sql试题作业,要求全做,谢谢!

来源:百度知道 编辑:UC知道 时间:2024/06/07 23:26:33
学生成绩管理数据库的建立
1、构建一个教学管理关系数据库如下:
学生(学号,姓名,性别,年龄,籍贯,班级代号)
课程(课程号,课程名称,学分数,教师代号)
成绩(学号,课程号,成绩,考试时间)
教师(教师代号,姓名,性别,年龄,职称)
为方便起见,上述关系用英文字母表示如下:
S(SNO,NAME,SEX,AGE,JG,CLASSNO)
C(CNO,CNAME,XF,TNO) cname
G(SNO,CNO,GRADE,DATE)
T(TNO,NAME,SEX,AGE,ZC)
2、上述关系模式中,带下划线的属性为各自关系的关键字,基于这些关系表,做如下查询(每题只予许编写一条查询语句):
(1) 找出男性学生的姓名
(2) 找出不是“020321”班的学生
(3) 查询“李峰”老师所教课程的课程名称和学分
(4) 检索出选修了课程代号为“A0111011”和“B0103104”课程的学生
(5) 查询至少选修了一门“李峰”老师的课程的学生姓名
(6) 求选修了课程名为“运筹学”的所有学生的学号和姓名
(7) 找出学生代号为“02032102”和“04035210”两个学生都选修了的课程
(8) 检索出没有被任何学生选修的课程
(9) 求出每个学生的成绩的平均分和总分
(10) 求至少三门以上课程成绩在90分以上的学生学号
(11) 求出少于10个学生选修的课程
(12) 求出有四门课程考试不及格的学生的姓名
(13) 求出每个老师所教课程的学分总数
(14) 求出教了三门课以上的老师
(15) 求出只教一门课程的老师
(16) 求出每一个班级中每一门课程获得最高分的学生的学号
你要分就说嘛,我给

(1)select name from S where sex = '男'
(2)select * from S where CLASSNO <> '020321'
(3)select CNAME,XF from C
where TNO in (select TNO from T where name = '李峰')
(4)select S.name from S,G
where S.Sno = G.sno
and G.cno in ('A0111011','B0103104')
(5)select S.name from S,C,G
where S.sno = G.sno
and C.cno= G.cno
and C.tno in (select tno from T where name = '李峰')
(6)select S.name from S,C,G
where S.sno = G.sno
and C.cno= G.cno
and C.Cname = '运筹学'
(7)select S.name from C,G
where C.cno= G.cno
and G.sno in ('02032102','04035210')
(8)select Cname from C
where Cno not in (select cno from G)
(9)select S.name,avg(G.GRADE),sum(G.GRADE) from S,G
where S.sno = G.sno
group by S.name
(10)select name from s
join (select count(sno) as ss,sno from G where grade > '90')A