实验目的:通过使用SSMS工具,练习对数据库中的数据表进行单表查询、多表连接查询、子查询。对数据表中的数据进行更改和删除等操作。
实验要求:将相关的SQL 语句和运行结果的截屏保存在文件中,或填写在下面的实验报告中,并通过网络提交。
实验内容:
使用SSMS工具,在“可用数据库”中选中Students数据库,完成如下实验。
1. 单表查询。写出实现如下查询的SQL语句。
(1) 查询学生选课表中的全部数据。
(2) 查询计算机系的学生的姓名、年龄。
(3) 查询成绩在70~80分的学生的学号、课程号和成绩。
(4) 查询计算机系年龄在18~20岁男生的姓名、年龄。
(5) 查询C001课程的考试成绩最高分。
(6) 查询计算机系学生的最大年龄和最小年龄。
(7) 统计各系的学生人数。
(8) 统计每门课程的选课人数和考试成绩最高分。
(9) 统计每个学生的选课门数和考试总成绩,并按选课门数升序显示结果。
(10)查询总成绩超过200分的学生,要求列出其学号和总成绩。
(11)查询选课门数超过2门的学生的学号、平均成绩和选课门数。
2. 多表连接查询。写出实现如下查询的SQL语句。
(12) 查询选了C002课程的学生的姓名和所在系。
(13) 查询成绩80分以上的学生的姓名、课程号和成绩,并按成绩降序排列结果。
(14) 查询计算机系男生选修了“数据库基础”的学生的姓名和成绩。
(15) 查询学生的选课情况,要求列出每位学生的选课情况(包括未选课的学生),并列出学生的学号、姓名、课程号和考试成绩。
(16) 查询哪些课程没有人选修,要求列出课程号和课程名。
(17) 查询计算机系没有选课的学生,列出学生的姓名。
3. 使用TOP和CASE的查询。写出实现如下查询的SQL语句。
(18) 列出“数据库基础”课程考试成绩前三名的学生的学号、姓名、所在系和考试成绩。
(19) 查询Java考试成绩最低的学生的姓名、所在系和Java成绩。
(20) 查询选修了Java的学生学号、姓名、所在系和成绩,并对所在系进行如下处理:
当所在系为“计算机系”时,显示“CS”;
当所在系为“信息管理系”时,显示“IS”;
当所在系为“通信工程系”时,显示“CO”;
对其他系,均显示“OTHER”。
4. 子查询。写出实现如下查询的SQL语句。
(21) 查询选修了C001课程的学生姓名和所在系。
(22) 查询计算机文化学考试成绩在80分以上的学生的学号和姓名。
(23) 查询计算机文化学考试成绩最高的学生姓名和所在系。
(24) 查询年龄最大的男生的姓名和年龄。
(25) 查询C001课程的考试成绩高于C001课程的平均成绩的学生的学号及其C001课程考试成绩。
5. 数据更改。写出实现如下操作的SQL语句。
(26) 将C001课程的考试成绩加10分。
(27) 将计算机系所有选修了“计算机文化学”课程的学生考试成绩加10分,分别用子查询和多表连接形式实现。
6. 数据删除。写出实现如下操作的SQL语句。
(28) 删除考试成绩低于50分的学生的选课记录。
(29) 删除信息管理系考试成绩低于50分的学生的该门课程的选课记录,分别用子查询和多表连接形式实现。
(30) 删除Java考试成绩最低的学生的Java选课记录。