数据库查询实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

应用数学学院_学院专业_1__班学号

姓名___ ___教师评定

实验题目数据库的查询

一、实验目的与要求

实验目的:使学生掌握SQL Server查询分析器的使用方法,加深对SQL 和Transact-SQL语言的查询语句的理解。熟练掌握简单表的数据查询、数据排序和数据联结查询的操作方法;嵌套查询语句;熟练掌握数据查询中的分组、统计、计算和组合的操作方法。

实验要求:

1、简单查询操作。该实验包括投影、选择条件表达,数据排序,使用临时表等;

2、连接查询操作;

3、嵌套查询。在SQL Server查询分析器中使用IN、比较符、ANY或ALL和EXISTS 操作符进行嵌套查询操作;

4、分组查询实验。包括分组条件表达、选择组条件的表达方法;

5、使用函数查询。包括统计函数和分组统计函数的使用方法;

6、组合查询实验;

二、实验方案

将查询需求用Transact-SQL语言表示;在SQL Server查询分析器的输入区中输入Transact-SQL查询语句;设置查询分析器的结果区为标准执行或网格执行方式;发布执行命令,并在结果区中查看结果;

三、实验结果和数据处理

1、学生选课库的各个表截图:

(1)学生表

(2)课程表

(3)选课表

2、图书-读者库的各个表截图(1)图书表

(2)读者表

(3)借阅表

实验步骤:

1、简单查询:

l)用Transact-SQL语句表示下列操作.在学生选课库中实现其数据查询操作.①求数学系学生的学号和姓名。

select 学号,姓名

from 学生

where 所在系='数学';

结果:

②求选修了课程的学生学号。

select distinct 学号

from 选课

结果:

③求选修A1课程的学生学号和成绩,并要求对查询结果按成绩降序排列,如果成绩相同则按学号升序排列。

select 学号,成绩

from 选课

where 课程号='A1'

order by 成绩 desc,学号 asc

结果:

④获选修课程A1且成绩在80~90分之间的学生学号和成绩,并将成绩乘以系数0.8 输出。select 学号,成绩*0.8

from 选课

where 课程号='A1' and 成绩 between 80 and 90

结果:

⑤求数学系或计算机系姓张的学生的信息。

select *

from 学生

where 所在系 in ('数学','计算机') and 姓名 like '张%';

结果;

⑥求缺少了成绩的学生的学号和课程号。(本库中没有学生没有成绩)

select 学号,课程号

from 选课

where 成绩 is null

结果:

2)在图书借阅库中实现其查询操作:将计算机类的书存入永久的计算机图书表中,将借书日期在2012年以前的借阅记录存入临时的超期借阅表。

select *

into 计算机图书

from 图书

where 类别='计算机'

go

select *

into #超期借阅

from 借阅

where 借阅日期<'12:01:01'

go

结果:

2、连接查询实验

用Transact-SQL语句表示,并在学生选课库中实现下列数据连接查询操作:

①查询每个学生的情况以及他(她)所选修的课程

select 学生.*,选课.*

from 学生,选课

where 学生.学号=选课.学号

结果:

②求学生的学号、姓名、选修的课程名及成绩。

select 学生.学号,姓名,课程名,成绩

from 学生,课程,选课

where 学生.学号=选课.学号 and 课程.课程号=选课.课程号

结果:

③求选修A1课程且成绩为85分以上的学生学号、姓名及成绩。select 学生.学号,姓名,成绩

from 学生,选课

where 学生.学号=选课.学号 and 课程号='A1' and 成绩>85

结果:

④查询每一门课的间接先行课(即先行课的先行课)。

select A.课程号,A.课程名,B.先行课

from 课程 A,课程 B

where A.先行课=B.课程号

结果:

3、嵌套查询:

用Transact-SQL语句表示,在学生选课库中实现其数据嵌套查询操作。

(1)求选修了数据结构的学生学号和姓名。

select 学号,姓名

from 学生

where 学号 in (select 学号

from 选课

where 课程号 in(select 课程号

from 课程

where 课程名='数据结构'));

结果:

(2)求A1课程的成绩高于黄洁蓉的学生学号和成绩。

select 学号,成绩

from 选课

where 课程号 ='A1' and 成绩 > ( select 成绩

from 选课

where 课程号='A1' and 学号=

(select 学号

from 学生

where 姓名='黄洁蓉'));

结果:

(3)求其他系中年龄小于数学系年龄最大者的学生。

select *

from 学生

where 年龄 < any (select 年龄

from 学生

where 所在系='数学') and 所在系 < >'数学'

结果:

(4)求其他系中比数学系学生年龄都小的学生。

select *

相关文档
最新文档