作业帮 > 综合 > 作业

SQL Server 2005试题第十题怎么做

来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/05/31 21:04:37
SQL Server 2005试题第十题怎么做
具体关系数据库如下:
现有一个学生选修课程的数据库,其中存放以下三个表:
学生(学号,姓名,性别,年龄,系别;
课程(课程号,课程名,任课教师);
选修(学号,课程号,分数)
用SQL语言实现下列功能:
(1)、建表:学生,课程,选修,在定义中要求声明:
A、每个表的主外码。
B、学生的年龄介于16到30。
C、学生的姓名和课程名不能为空。
D、选课成绩取0到100的整数。
(2)、插入如下数据:

学生(101,张三,男,16,数学
102,李四,男,18,计算机
103,王玲,女,17,中文
105,李飞,男,19,计算机
109,赵四,女,18,历史
110,李平,男,20,化学)

课程(203,操作系统,程羽
279,高等数学,王备
210,现代文学,王林
243,有机化学,沈同
204,数据结构,张青)

选修(101,203,82
105,203,59
102,279,90
101,279,88
105,279,82
110,279,68
109,210,72
103,210,90
110,243,92
101,204,85
105,204,91
102,204,56)
(3)、列出张三同学选修的所有课程的名称和成绩
(4)、列出所有课程都及格了的同学的名字
(5)、列出在选修张青老师所教授课程的学生中,成绩最高的学生姓名和成绩
(6)、删除所有成绩不及格的选课记录
(7)、将105号同学选修203号课程的成绩改为该门课程的平均成绩
SQL Server 2005试题第十题怎么做
(1),(2)你自己弄吧,
(3)select 课程.课程名, 选修.分数
from 学生 left join 选修 on 学生.学号 = 选修.学号
left join 课程 on 学修.课程号 = 课程.课程号
where 学生.姓名 = '张三';
(4)select 姓名
from 学生
where 学号 in (
select 学号
from 选修
group by 学号
having min(分数) >=60);
(5)
select top 1 姓名 , 学号
from 选修 , 学生
where 课程号 in (select 课程号
from 课程
where 任课教师='张青')
and 学生.学号 = 选修.学号
order by 分数 desc;
(6)delete from 学修 where 分数 < 60;
(7)update 选修
set 分数 = (select avg(分数) from 选修 where 课程号 = 203)
where 学号 = 105
and 课程号 = 203;