已知有三个表:学生表(学号,姓名,性别,年龄,院系号,入学成绩)
课程表(课程号,课程名,学分,先修课)
成绩表(学号,课程号,成绩)
1、查询选修了“数据结构”或者“网络工程”课程的学生学号,课程号,成绩
2、查询院系号为“06”的选修了“数据结构”课程的学生学号,姓名,性别
3、查询年龄最大的学生信息
4、查询“06”或者“02”院系的学生学号,课程号和所选课程的成绩,按课程号降序排列,课程号相同的按学号升序排列
5、在学生表中插入一条新记录,学号为“s9”,姓名为“张英”,年龄18,性别女,院系号为“01”
6、删除所有先修课程为空的课程记录
7、更新所有选修了“C++”课程的同学这门课的成绩,提高5分
8、查询选修了两门课程以上的同学的所选课程数、平均分、最高分、最低分
课程表(课程号,课程名,学分,先修课)
成绩表(学号,课程号,成绩)
1、查询选修了“数据结构”或者“网络工程”课程的学生学号,课程号,成绩
2、查询院系号为“06”的选修了“数据结构”课程的学生学号,姓名,性别
3、查询年龄最大的学生信息
4、查询“06”或者“02”院系的学生学号,课程号和所选课程的成绩,按课程号降序排列,课程号相同的按学号升序排列
5、在学生表中插入一条新记录,学号为“s9”,姓名为“张英”,年龄18,性别女,院系号为“01”
6、删除所有先修课程为空的课程记录
7、更新所有选修了“C++”课程的同学这门课的成绩,提高5分
8、查询选修了两门课程以上的同学的所选课程数、平均分、最高分、最低分
select a.学号,c.课程号,b.成绩
from 学生表 as a
join 成绩表 as b
on a.学号=b.学号
join 课程表 as c
on b.课程号=c.课程号
where c.课程名 in('数据结构','网络工程');2.
select a.*
from 学生表 as a
where exists(select * from 成绩表 as b
join 课程表 as c
on b.课程号=c.课程号
where a.学号=b.学号 and c.课程名='数据结构')
and 院系号='06';3.
select top 1 with ties * from 学生表 order by 年龄 desc;4.
select a.学号,c.课程号,c,课程名,b.成绩
from 学生表 as a
join 成绩表 as b
on a.学号=b.学号
join 课程表 as c
on b.课程号=c.课程号
where a.院系号 in('06','02')
order by c.课程号 desc,a.学号;5.
insert 学生表(学号,姓名,年龄,性别,院系号) values('s9','张英',18,'女','01');6.
delete 课程表 where 先修课程 is null;7.
update a set
成绩=成绩_5
from 成绩表 as a
join 课程表 as b
on a.课程号=b.课程号
where b.课程名='C++';8.
select a.学号,avg(b.成绩) as 平均分,max(b.成绩) as 最高分,min(b.成绩) as 最低分
from 学生表 as a
join 成绩表 as b
on a.学号=b.学号
group by a.学号
having count(distinct b.课程号)>2