《国开学习网电大数据库应用技术第四次形考作业实验答案.pdf》由会员分享,可在线阅读,更多相关《国开学习网电大数据库应用技术第四次形考作业实验答案.pdf(3页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、国开学习网电大数据库应用技术第四次形考作业实验答案 实验目的:通过使用 SSMS 工具,练习对数据库中的数据表进行单表查询、多表连接查询、子查询。对数据表中的数据进行更改和删除等操作。实验要求:将相关的 SQL 语句和运行结果的截屏保存在文件中,或填写在下面的实验报告中,并通过网络提交。实验内容:使用 SSMS 工具,在“可用数据库”中选中 Students 数据库,完成如下实验。1.单表查询。写出实现如下查询的 SQL 语句。(1)查询学生选课表中的全部数据。SELECT*FROM SC(2)查询计算机系的学生的姓名、年龄。SELECT Sname,Sex FROM Student WHER
2、E Sdept=计算机系(3)查询成绩在 7080 分的学生的学号、课程号和成绩。SELECT Sno,Cno,Grade FROM SC where Grade BETWEEN 70 AND 80;(4)查询计算机系年龄在 1820 岁男生的姓名、年龄。SELECT Sname,Sage from Student where Sex=男 AND Sage18 AND Sage200;(11)查询选课门数超过 2 门的学生的学号、平均成绩和选课门数。SELECT top 2 Sno,count(cno)选课门数 from SC GROUP BY Sno ORDER BY 2 DESC;2.多表
3、连接查询。写出实现如下查询的 SQL 语句。(12)查询选了 C002 课程的学生的姓名和所在系。SELECT Sname,Sdept from SC,Student where SC.Sno=Student.Sno AND Cno=C002(13)查询成绩 80 分以上的学生的姓名、课程号和成绩,并按成绩降序排列结果。SELECT Sname,Cno,Grade FROM SC,Student WHERE Grade80 AND Student.Sno=SC.Sno ORDER BY Grade DESC(14)查询计算机系男生选修了“数据库基础”的学生的姓名和成绩。select sname
4、,ssex,grade from student s join sc on s.sno=sc.sno join course c on o=o where sdept=计算机系 and ssex=男 and cname=数据库基础(15)查询学生的选课情况,要求列出每位学生的选课情况(包括未选课的学生),并列出学生的学号、姓名、课程号和考试成绩。SELECT Student.Sno,Sname,Cno from SC,Student WHERE Student.Sno=SC.Sno(16)查询哪些课程没有人选修,要求列出课程号和课程名。SELECT Course.Cno,Cname from
5、SC,Course WHERE SC.Cno=Course.Cno AND Sno IS NULL;(17)查询计算机系没有选课的学生,列出学生的姓名。SELECT Sname FROM Student,SC WHERE Student.Sno=SC.Sno AND Cno is NULL AND Sdept=计算机系 3.使用 TOP 和 CASE 的查询。写出实现如下查询的 SQL 语句。(18)列出“数据库基础”课程考试成绩前三名的学生的学号、姓名、所在系和考试成绩。SELECT top 3 Student.Sno,Sname,Sdept,Grade from SC,Course,Stu
6、dent WHERE Student.Sno=SC.Sno AND SC.Cno=Course.Cno and Cname=数据库基础 ORDER BY Grade DESC;(19)查询 Java 考试成绩最低的学生的姓名、所在系和 Java 成绩。SELECT Sname,Sdept,Grade from SC,Course,Student WHERE Student.Sno=SC.Sno AND SC.Cno=Course.Cno and Cname=java order by Grade asc limit 1(20)查询选修了 Java 的学生学号、姓名、所在系和成绩,并对所在系进行
7、如下处理:当所在系为“计算机系”时,显示“CS”;当所在系为“信息管理系”时,显示“IS”;当所在系为“通信工程系”时,显示“CO”;对其他系,均显示“OTHER”。select s.sno 学号,sname 姓名,case sdept when 计算机系 then CS when 信息管理系 then IS when 通信工程系 then CO else OTHER end as 所在系,grade 成绩 from student s join sc on s.sno=sc.sno join course c on o=o where cname=Java 4.子查询。写出实现如下查询的 S
8、QL 语句。(21)查询选修了 C001 课程的学生姓名和所在系。select sname,sdept from student where sno in(select sno from sc where cno=C001)(22)查询计算机文化学考试成绩在 80 分以上的学生的学号和姓名。select sno,sname from student where sno in(select sno from sc where grade 80 and cno in(select cno from course where cname=计算机文化学)(23)查询计算机文化学考试成绩最高的学生姓名和
9、所在系。select sname,sdept from student s join sc on s.sno=sc.sno Join course c on o=o where grade=(select max(grade)from sc join course c on o=o where cname=计算机文化学)and cname=计算机文化学(24)查询年龄最大的男生的姓名和年龄。select sname,sage from student Where sage=(select max(sage)from student and ssex=男)and ssex=男(25)查询 C00
10、1 课程的考试成绩高于 C001 课程的平均成绩的学生的学号及其 C001 课程考试成绩。select sno,grade from sc where cno=C001 And grade (select avg(grade)from sc where cno=C001)5.数据更改。写出实现如下操作的 SQL 语句。(26)将 C001 课程的考试成绩加 10 分。update sc set grade=grade+10 where cno=C001(27)将计算机系所有选修了“计算机文化学”课程的学生考试成绩加 10 分,分别用子查询和多表连接形式实现。1)子查询 update sc se
11、t grade=grade+10 where sno in(select sno from student where sdept=计算机系)and cno in(select cno from course where cname=计算机文化学)2)多表连接 update sc set grade=grade+10 from sc join student s on sc.sno=s.sno join course c on o=o where sdept=计算机系 and canem=计算机文化学 6.数据删除。写出实现如下操作的 SQL 语句。(28)删除考试成绩低于 50 分的学生的选
12、课记录。delete from sc where grade 50(29)删除信息管理系考试成绩低于 50 分的学生的该门课程的选课记录,分别用子查询和多表连接形式实现。1)用连接查询实现 delete from sc from sc join student s on s.sno=sc.sno where sdept=信息管理系 and grade 50 2)用子查询实现 delete from sc where sno in(select sno from student where sdept=信息管理系)(30)删除 Java 考试成绩最低的学生的 Java 选课记录。delete from sc where grade=(select min(grade)from sc join course c on o=o where cname=Java)and cno in(select cno from course where cname=Java)