SQL实训报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档