SQL实训报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
民办四川天一学院
实训报告
学号:
姓名:
院系:
专业:
教师:
2018年月
实训一SQL数据查询实验
一、实训目的
1.熟练掌握基本查询命令select… from… where语法结构;
2.熟练掌握多表查询命令的设计方法;
3.熟练掌握分组聚合查询应用方式方法;
4.通过观察查询结果, 体会查询语句的实际应用。
二、实训原理和内容
(内容宋体小四号,行距固定值24磅,首行缩进2字符)
实训数据库为学生成绩管理数据库ScoreDB,数据库关系模式如下:
Student(studentNo, studentName, sex, birthday, native, nation, classNo)
Class(classNo, className, institute, grade, classNum)
Course(courseNo, courseName, creditHour, courseHour, priorCourse)
Score(studentNo, courseNo, score)
实训内容:
任务1:在学生Student表中查询年龄大于或等于19岁的同学学号、姓名和出生日期。
任务2:在选课Score表中查询成绩在80~90分之间的同学学号、课程号和相应成绩。
任务3:在班级Class表中查询班级名称中含有会计的班级信息。
任务4:在学生Student表中查询籍贯不是“南昌”或“上海”的同学姓名、
1
籍贯和所属班级编号,并按籍贯的降序排序输出。
任务5:查找会计学院全体同学的学号、姓名、籍贯、班级编号和所在班级名称。
任务6:查找选修了课程名称为“计算机原理”的同学学号、姓名。
任务7:查询每个同学的选课门数、平均分和最高分。
任务9:查询平均分在80分以上的每个同学的选课门数、平均分和最高分。
实训要求:设计T_SQL命令,并在SQL Server Management Studio的查询分析器中执行命令,观察并分析结果。
三、实训过程
任务1:在学生Student表中查询年龄大于或等于19岁的同学学号、姓名和出生日期。
任务分析:由任务可知,所需查询的属性都位于一张表student中,因此可以直接进行简单查询,查询条件是...
Year(getdate())-year(birthday)
查询语句设计如下:
select studentNo ,studentName from student where
year(getdate())-year(birthday)>19 and sex='女'
查询结果:
任务2:在选课Score表中查询成绩在80~90分之间的同学学号、课程号和相应成绩。
任务分析:由任务可知,所查询的属性都位于一张表Score中,因此可以直接进行简单查询,查询条件是:
2
3
Where (score>=80 and score<=90) 查询语句设计如下: use ScoreDB select * from Score
where score>=80 and score<=90 查询结果: …
任务3:在班级Class 表中查询班级名称中含有会计的班级信息。 任务分析:由任务可知,所查询的属性都位于一张表Score 中,因此可以直接进行简单查询,查询条件是:
Where (className like '%会计%') 查询语句设计如下: use ScoreDB
select * from Class where className like '%会计%' 查询结果: 任务4:在学生 Student
表中查询籍贯不
是“南昌”或“上海”的同学姓名、籍贯和所属班级编号,并按籍贯的降序排序输出。
任务分析:由任务可知,所查询的属性都位于一张表Score中,因此可以直接进行简单查询,查询条件是:
where [native] not in ('南昌','上海')
查询语句设计如下:
use ScoreDB
select StudentName,[native],classNo
from Student
where [native] not in ('南昌','上海')
查询结果:
任务5:查找会计学院全体同学的学号、姓名、籍贯、班级编号和所在班级名称。
任务分析:由任务可知,所查询的属性在两张关系中,要查询须使用交叉连接,查询条件是:
where a.classNo=b.classNo and institute='会计学院'
查询语句设计如下:
use ScoreDB
select studentno,studentname,[native],a.classno,classname
4
from Student a,Class b
where a.classNo=b.classNo and institute='会计学院'
查询结果:
任务6:查找选修了课程名称为“计算机原理”的同学学号、姓名。
任务分析:由任务可知,所查询的属性在三张关系中,所以要使用自然连接,查询条件是:
where a.studentNo=b.studentNo and
b.courseNo=
c.courseNo and courseName='计算机原理'
查询语句设计如下:
use ScoreDB
select a.studentName,studentName
from Student a,Score b,Course c
where a.studentNo=b.studentNo and
b.courseNo=
c.courseNo and
courseName='计算机原理'
查询结果:
5