您的当前位置:首页数据库实验3

数据库实验3

2020-07-14 来源:飒榕旅游知识分享网
贵州大学计算机科学与信息学院 计算机科学与技术系上机实验报告

《数据库原理》实验报告 题目 单表查询 姓名 班级 软工102 日期 2012/4/1 实验环境:SQL Server 环境 实验内容 一、实验目的 本实验的目的是使学生掌握SQL Server查询分析器的使用方法,并熟练掌握单表查询、数 序、聚集函数。 据排二、实验内容 本实验使用实验二中建立的基本表Student、Course、SC和Teacher中的元组。 在SQL Server2000查询分析器中,完成如下查询要求: (1) 求全体学生的姓名、性别和所在系。 (2) 求该校的所有系名。 (3) 求计科系男生的学号和姓名。 (4) 求年龄在19-21岁(包含19岁和21岁)之间的学生姓名和所在系。 (5) 求存在先行课的课程的课程名和学分。 (6) 求数学系或者信息系的学生姓名。 (7) 求以“数据”开头的所有课程的课程名和学分。 (8) 求课程DB_Design的学分。 (9) 求缺考学生的学号和课程号。 (10) 求选修了2号课程学生的学号和成绩。 (11) 求计科系老师的姓名和工资。 (12) 求姓王的老师的姓名和所在系。 (13) 求工资在2500-3500之间的老师姓名。 (14) 求外语系所有副教授的姓名和年龄。 (15) 求所有女老师的姓名、年龄和所在系。 (16) 求学生的总人数。 (17) 求选修了课程的学生人数。 (18) 求课程号和选修了该课程的学生人数。 (19) 求教师人数超过4人的系名。 (20) 求学生的学号及其选修课程的总成绩。 (21) 求系名和各系老师的平均年龄。 (22) 求各门课程课程号和平均成绩。 (23) 求选修课程号为1的学号和成绩,并要求对查询结果按成绩的降序排列,学号的升序排列。 (24) 求选修课程号为1且成绩在80~95之间的学生学号和成绩,并且成绩乘以0.8输出,将输出的

1

列名改成“学号”和“成绩*0.8”。 (25) 求3号课程的最高分。 三、实验方法 将查询需求用SQL语言表示;在SQL Server查询分析器的输入区中输入SQL查询语句;编译和发布执行命令,并在结果区中查看查询结果;如果结果不正确,要进行修改,直到正确为止。 四、实验过程 (1) 求全体学生的姓名、性别和所在系。 执行语句和结果如下: (2) 求该校的所有系名。 执行语句和结果如下: (3) 求计科系男生的学号和姓名。 执行语句和结果如下: (此题还差一个条件“计科”;where Ssex=‘男’and Sdept=‘计科’; 2

此答案才是正确的。) (4) 求年龄在19-21岁(包含19岁和21岁)之间的学生姓名和所在系。 执行语句和结果如下: (5) 求存在先行课的课程的课程名和学分。 执行语句和结果如下: (6) 求数学系或者信息系的学生姓名。 执行语句和结果如下: (7) 求以“数据”开头的所有课程的课程名和学分。 执行语句和结果如下: 3

(8) 求课程DB_Design的学分。 执行语句和结果如下: (9) 求缺考学生的学号和课程号。 执行语句和结果如下: (10) 求选修了2号课程学生的学号和成绩。 执行语句和结果如下: (11)求计科系老师的姓名和工资。 执行语句和结果如下: 4

(12)求姓王的老师的姓名和所在系。 执行语句和结果如下: (13) 求工资在2500-3500之间的老师姓名。 执行语句和结果如下: (14) 求外语系所有副教授的姓名和年龄。 执行语句和结果如下: 5

(15) 求所有女老师的姓名、年龄和所在系。 执行语句和结果如下: (16)求学生的总人数。 执行语句和结果如下: (此题有错误)正确语句 ( Select count(Sno) From Student;因为Sno在Student表中是主码,故唯一, 就算Sno不唯一distinct应该在括号里面的 或者 6

) (17)求选修了课程的学生人数。 执行语句和结果如下: (18)求课程号和选修了该课程的学生人数。 执行语句和结果如下: (19)求教师人数超过4人的系名。 执行语句和结果如下: (20)求学生的学号及其选修课程的总成绩。 执行语句和结果如下: (21)求系名和各系老师的平均年龄。

7

执行语句和结果如下: (22)求各门课程课程号和平均成绩。 执行语句和结果如下: (23)求选修课程号为1的学号和成绩,并要求对查询结果按成绩的降序排列,学号的升序排列。 执行语句和结果如下: (24)求选修课程号为1且成绩在80~95之间的学生学号和成绩,并且成绩乘以0.8输出,将输出的列名改成“学号”和“成绩*0.8”。 执行语句和结果如下: (25) 求3号课程的最高分。 执行语句和结果如下: 8

五、出现的问题及其解决方案(列出遇到的问题和解决办法,列出没有解决的问题) 问题1: 在(24)将输出的列名改成 “成绩*0.8”时,语句和结果如下: 分析原因: 列名“成绩*08”是字符串,在于据中应该用字符串的表示方法。 解决办法: 将语句做如下修改: 问题2: 在(22)求各门课程课程号和平均成绩。 执行语句和结果如下:

9

选修1号课程的同学有两个,一个的成绩是92,另外一个的成绩是空值,平均成绩应该等于46. 分析原因: 空值不等于0,在计算平均值的时候,不计算成绩为空值的人数。 解决办法: 问题中的结果正确,无需解决。

10

因篇幅问题不能全部显示,请点此查看更多更全内容