实验6-SQL-查询附答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验6-SQL-查询附答案
实验六SQL 查询
一、实验目的:
1.熟练掌握SELECT语句的语法格式
2.掌握联接的几种方法
3.掌握子查询的表示和执行
4.能够对SELECT查询结果进行分组、排序及统计
5.能够运用T-SQL语句对表进行数据的插入、修改、删除6.能够通过导入/导出向导进行数据的导入导出
二、实验内容:
利用实验四中的数据库做如下操作:
1.在“学生表”中,找出性别为“男”的学生记录,字段包括“姓名”、“出生日期”和“专业”。
2.在“课程表”中,找出“课程名”中包含“计算机”三个字的课程。
3.在“成绩表”中,找出“课程编号”为“001”的课程成绩前三名学生。
4.在“成绩表”、“学生表”和“课程表”中,找出“课程编号”为“001”的课程成绩在[80,90]之间的学生的姓名、课程名和成绩。
5.在“学生表”中,找出“专业”为“计算机软件”、“电子商务”专业的学生信息。
6.统计“计算机应用基础”课程的平均分。
7.查找各门课程的修课人数。
8.在“成绩表”中,找出课程编号为“001”的这门课程的所有学生的分数以及最高分、最低分和平均分。
9.找出所有女生的“计算机应用基础”这门课的成绩,包括字段:姓名、课程名、成绩。
10.查找“成绩表”中,课程编号为“001”的成绩高于平均分的所有学生的学号、姓名、课程名和成绩。
11.查找“成绩表”中,高于各门课程平均分的学生信息。
12.查找“课程表”中,没有被学生修课的课程信息。
13.将“课程表”中的课程编号为“001”的学分增加1学分。
14.删除学号为“20030101”学生的相关信息。
三、实验过程:
启动“查询分析器”,在其文本窗口中输入相应的Transcat-SQL语句,分析并执行,观察输出结果。
1.Use 学生
select 姓名,出生日期,专业 from 学生表 where 性别='男'
2.use 学生
select * from 课程表 where 课程名 like '%计算机%'
3.use 学生
select top 3 * from 成绩表 where 课程编号='001' order by 成绩 desc
4.Use 学生
select a.姓名,c.课程名,b.成绩 from 学生表 as a join 成绩表 as b on b.课程编号=001 and a.学号=b.学号 and b.成绩 between 80 and 90 join 课程表 as c on c.课程编号=b.课程编号
5.use 学生
select * from 学生表 where 专业 in ('计算机软件','电子商务')
6.use 学生
select avg(成绩)as 平均成绩 from 成绩表 as a join 课程表 as b
on b.课程名='计算机应用基础' and b.课程编号=a.课程编号
7.use 学生
select 课程编号,count(学号)as 修课人数 from 成绩表 group by 课程编号
8.use 学生
select * from 成绩表 where 课程编号=001
compute max(成绩),min(成绩),avg(成绩)
9.use 学生
select a.姓名,b.课程名,c.成绩 from 学生表 as a join 成绩表 as c on a.学号=c.学号 and a.性别='女'join 课程表 as b
on b.课程编号=c.课程编号 and b.课程名='计算机应用基础'
10.use 学生
select a.学号,a.姓名,b.课程名,c.成绩 from 课程表 as b join 成绩表 as c
on b.课程编号=c.课程编号 and c.课程编号=001 and c.成绩>
(select avg(成绩) from 成绩表 where c.课程编号=001)
join 学生表 as a on a.学号=c.学号
11.use 学生
select * from 成绩表 as a where 成绩>
(select avg(成绩) from 成绩表 as b where a.课程编号=b.课程编号)
12.use 学生
select * from 课程表 where not exists
(select * from 成绩表 where 成绩表.课程编号=课程表.课程编号)
13.use 学生
update 课程表 set 学分=学分+1 where 课程编号=001
14.use 学生
delete 成绩表 where 学号='20030101'