数据结构实验报告完整版文档格式.docx

上传人:b****5 文档编号:19557419 上传时间:2023-01-07 格式:DOCX 页数:28 大小:1,008.86KB
下载 相关 举报
数据结构实验报告完整版文档格式.docx_第1页
第1页 / 共28页
数据结构实验报告完整版文档格式.docx_第2页
第2页 / 共28页
数据结构实验报告完整版文档格式.docx_第3页
第3页 / 共28页
数据结构实验报告完整版文档格式.docx_第4页
第4页 / 共28页
数据结构实验报告完整版文档格式.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

数据结构实验报告完整版文档格式.docx

《数据结构实验报告完整版文档格式.docx》由会员分享,可在线阅读,更多相关《数据结构实验报告完整版文档格式.docx(28页珍藏版)》请在冰豆网上搜索。

数据结构实验报告完整版文档格式.docx

3.建立两个试验用数据库,使用企业管理器和查询分析器对数据库和表进行基础操作。

二、试验预习内容

在认真阅读教材及试验指导书基础上,上机前请预习以下内容,并在空白处填写对应步骤或命令。

1.熟悉SQLSERVER运行环境,练习服务器基础操作:

打开、停止、关闭。

 

2.使用SQLSERVER中企业管理器完成以下任务。

数据库名称:

STC

表:

STU(snochar(9),snamevarchar(50),ssexchar

(2),sageint,sdeptchar

(2));

COUTSES(cnochar(3),cnamevarchar(50),cpnochar(3),creditint);

SC(snochar(9),cnochar(3),gradeint);

说明:

以上为表结构,以snochar(9)为例,说明sno属性设置为字符类型,宽度为9,int指整型数据。

1)建立数据库STC,分别建立以上三张表,并完成数据录入。

(表结构及数据参见教材)

2)分析并建立各表主码,用下划线在上面表结构中标出主码。

3)建立各表之间关联,请简述操作步骤。

以下是各表数据及各表主码:

1.STU表:

2.COUTSES表;

3SC表:

建立各表关联:

4)参考试验指导书【第5章数据库备份和还原】,使用企业管理器对数据库STC进行备份,并尝试在个人电脑与机房电脑上进行还原,请简述备份、还原操作步骤。

1.备份:

2.还原:

3.在SQLSERVER查询分析器中使用SQL语言完成以下任务。

参考试验指导书《数据库系统试验指导教程》【试验1.1数据定义】,建立数据库SCHOOL,分别建立students、teachers、courses、choices四张表,表结构见试验指导书P236【附录A】。

1)用SQL语言创建数据库、建表。

建表时为各表建立关键字、设置外码,数据暂不录入,请写出对应SQL命令。

createdatabaseSCHOOL

creatTABLEstudents

(sidchar(10)primarykey,

snamechar(30)notnull,

emailchar(30),

gradeint,

);

createTABLEteachers

(tidchar(10)primarykey,

tnamechar(30)notnull,

salaryint,

createTABLEcourses

(cidchar(10)primarykey,

cnamechar(30)notnull,

hourint,

createTABLEchoices

(nointprimarykey,

sidchar(10),

tidchar(10),

cidchar(10),

scoreint,

FOREIGNKEY(sid)REFERENCESstudents(sid),

FOREIGNKEY(tid)REFERENCESteachers(tid),

FOREIGNKEY(cid)REFERENCEScourses(cid),

2)为students表、courses建立按主键増序排列索引,请写出对应SQL命令。

createindexssidonstudents(sidasc)

createindexccidoncourses(cidasc)

3)删除course上索引,请写出对应SQL命令。

dropindexcourses.ccid

4)在SCHOOL数据库中students表中增加一个“出生日期”字段,类型为日期时间型,请写出对应SQL命令。

alterTABLEstudentsADD出生日期DATETIME

5)删除students中“出生日期”字段,请写出对应SQL命令。

alterTABLEstudentsDROPCOLUMN出生日期

6)删除SCHOOL数据库中students表,请写出对应SQL命令。

AlterTABLEchoises

dropFK_CHOICES_STUDENTS

DROPTABLEstudents

4.使用企业管理器创建数据库SCHOOL,实现内容与试验预习内容3完全相同。

1)创建数据库、建表。

建表时为各表建立关键字、设置外码,数据暂不录入

建立表,以及主码,外码

2)为students表、courses建立按主键増序排列索引:

3)删除course上索引:

4)在SCHOOL数据库中students表中增加一个“出生日期”字段,类型为日期时间型:

5)删除students中“出生日期”字段:

6)删除SCHOOL数据库中students表

5.使用企业管理器,将SCHOOL数据库分离出MSSQLSERVER,请简述步骤。

6.使用企业管理器,使用【数据库/全部任务/附加数据库】将SCHOOL数据库添加进SQLSERVER,并查看数据。

7.使用查询分析器,删除数据库STC,请写出对应SQL命令。

dropdatabaseSTC

8.结束此次试验

三、试验课后训练

1.使用企业管理器练习数据导入导出。

1)将SCHOOL数据库students表中数据导出到STC数据库对应stu表中;

2)向STC数据库courses表导入SCHOOL数据库courses表中数据;

3)自行练习试验指导书【试验5.3SQLSERVER数据库导入与导出】部分;

1:

从school数据库中students表中数据导出到文本文件Learner中:

2:

将文本文件Learner中数据导入到school数据库中students表中

2.自行练习试验指导书【试验1.1数据定义】部分。

四、

试验汇报

1.简述此次试验所用到SQL命令及其功效。

createdatabase<

名称>

创建数据库

creatTABLE<

表名>

(<

列名>

<

数据类型>

[列级完整性约束条件]

[,<

[列级完整性约束条件]]

表级完整性约束条件>

])

创建基础表

createindex<

主属性>

on<

(主属性asc(desc))

为表建立按主键増序(降序)排列索引

AlterTABLE<

表B>

drop(B与A外码约束)

DROPTABLE<

表A>

删除数据库中A表

2.在MSSQLSERVER中数据库“分离|添加”与“备份|还原”是相同功效吗?

是不一样功效,“分离/添加”会使数据库数量改变,而“备份|还原”不会改变。

3.试验总结(试验过程中出现问题、处理方法、结果怎样或其它)

经过此次试验,知道了基础sql命令及其功效,同时也初步包含到了SQL语言。

在试验过程中也碰到了部分问题,比如在一开始没有打开服务器直接进入企业管理器,半天链接不上。

创建表后,录入数据后找不到怎样保留数据,原来系统会自己存放,录入数据后直接关闭就能够了。

导入数据时,最终总是不记得选择要导入表,直接就导入了。

试验二——SQL语句

1.熟悉SQL数据查询语言,能使用SQL进行单表查询、连接查询、嵌套查询、集合查询和统计查询,能了解空值处理;

2.熟悉数据库数据更新操作,能使用SQL语句对数据库进行数据插入、更新、删除操作;

3.熟悉SQL支持相关视图操作,能创建、查询及取消视图;

4.了解NULL在数据库中特殊含义,掌握使用SQL进行与空值相关操作;

在认真阅读教材及试验指导书【试验1.2数据查询】、【试验1.3数据更新】、【试验1.4视图】和【试验1.6空值和空集处理】基础上,上机前请预习以下内容,并在空白处填写对应步骤或命令。

1.使用SCHOOL数据库,在SQLSERVER查询分析器中使用SQL语言完成以下操作。

请在空白处填写对应SQL命令。

1)查询年级为全部学生名称,按编号次序排列;

SELECTsname

fromSTUDENTS

WHEREgrade=

ORDERBYsidDESC

2)查询全部课程名称中含有data课程编号;

SELECTCID

FROMCOURSES

WHERECNAMELIKE'

%data%'

3)统计全部老师平均工资

SELECTAVG(SALARY)

FROMTEACHERS

4)查询最少选了3门课学生编号;

SELECTsid

FROMCHOICES

GROUPBYsid

HAVINGCOUNT(sid)>

5)查询学号为80009026学生姓名、所选课名及成绩;

SELECTSTUDENTS.SNAME,COURSES.CNAME,CHOICES.SCORE

FROMSTUDENTS,COURSES,CHOICES

WHERESTUDENTS.sid=ANDSTUDENTS.sid=CHOICES.sidANDCOURSES.cid=CHOICES.cid

6)查询没有学生选课程编号;

SELECTcid

WHERECIDNOTIN(SELECTCIDFROMCHOICES)

7)查询既选了C++又选了Java课程学生编号;

SELECTX.sid

FROMCHOICESASX,CHOICESASY

WHERE(X.cid=(SELECTcidfromcourseswherecname='

C++'

)ANDY.cid=(SELECTcidfromcourseswherecname='

JAVA'

))

ANDX.sid=Y.sid

8)查询选了C++但没选Java课程学生编号;

)AND

Y.cidIN(SELECTcidfromcourseswherecname<

>

'

))ANDX.sid=Y.sid

9)向STUDENTS表中插入“LiMing”个人信息(编号:

名字:

LiMing,Email:

年级:

1992);

INSERT

INTOSTUDENTS(sid,sname,email,grade)

VALUES('

'

liMing'

1992'

10)将“LiMing”年级改为;

UPDATEstudents

SETgrade=

WHEREsname='

LiMing'

;

11)删除全部选了Java课程学生选课统计;

DELETE

FROMchoices

wherecid=(selectcidfromcourses

wherecname='

Java'

12)求出每门课课程号、选课人数,结果存入数据库表T1中。

createtableT1(

cidchar(10),

mint

insert

intoT1(cid,m)

selectcourses.cid,count(sid)

fromcoursesleftjoinchoicesoncourses.cid=choices.cid

groupbycourses.cid

selectdistinct*

fromT1

orderbycidasc

13)查询全部选课统计成绩并换算为五分制(注意NULL情况);

selectsid,tid,cid,score/20score

fromchoices

14)查询成绩小于0选课统计,统计总数、平均分、最大值和最小值(注意查询结果中NULL情况);

selectcount(*),avg(a.score),max(a.score),min(a.score)

from(select*fromchoiceswherescore<

60)a

15)按成绩次序排序显示CHOICES表中全部统计。

(使用ORDERBY排序,注意NULL情况);

select*

orderbyscore

16)创建视图V1,显示学生姓名、所选课名称、任课老师名;

createVIEWV1(sname,cname,tname)

AS

SELECTsname,tname,cname

fromstudents,teachers,courses,choices

wherestudents.sid=choices.sidandteachers.tid=choices.tidandcourses.cid=choices.cid

17)取消V1视图;

DROPVIEWV1

使用STC数据库,在SQLSERVER查询分析器中使用SQL语言完成以下操作。

请在空白处填写对应SQL命令或其它内容。

1)创建视图V2,显示计算机(CS)系学生信息;

(结合下面b)小题,V2视图创建2次,分别使用/不使用WITHCHECKOPTION选项)

(1)不加WITHCHECKOPTION

(2)加WITHCHECKOPTION

CREATEVIEWV2

SELECT*

FROMSTUDENTS;

WHEREsdept=’CS’;

FROMSTUDENTS

WITHCHECKOPTION;

2)插入元组(99999,张三,20岁,男,PH)到V2中,运行结果怎样?

(观察WITHCHECKOPTION对结果影响);

(1)不加WITHCHECKOPTION结果

(2)加WITHCHECKOPTION结果

INTOV2

99999'

张三'

男'

20'

PH'

命令已成功完成。

(所影响行数为1行)

试图进行插入或更新已失败,原因是目标视图或者目标视图所跨越某一视图指定了WITHCHECKOPTION,而该操作一个或多个结果行又不符合CHECKOPTION约束条件。

语句已终止。

3)在V2基础上,查询全部计算机系女生信息;

SELECT*

FROMV2

WHERESSEX='

女'

2.结束此次试验

1.掌握SQLSERVER中流控制语句及其它常见编程语句;

1)使用查询分析器,编写代码,输出乘法口诀表。

2.自行练习试验指导书P24【试验1.2数据查询】1.2.5自我实践部分;

(1)查询全部课程具体统计;

fromcourses

(2)查询全部有选修课学生编号;

selectsid

(3)查询课时<

88(小时)课程编号;

selectcid

wherehour<

88

(4)请找出总分超出400分学生;

selectsid,sum(score)

groupbysid

havingsum(score)>

400

3.自行练习试验指导书P30【试验1.3数据更新】1.3.5自我实践部分;

4.自行练习试验指导书P36【试验1.4视图】1.4.5自我实践部分;

5.自行练习试验指导书P49【试验1.6空值和空集处理】1.6.5自我实践部分;

1.SQLSERVER中变量申明命令是什么?

输出命令是什么?

变量申明:

declare@变量名变量类型

输出:

SETSERVEROUT[PUT]ON

2.SQLSERVER中实现分支和循环语句分别是什么?

循环:

while(条件--只能是表示式)

语句或语句块

[break]--强制退出

分支:

case

when条件1then结果1

when条件2then结果2

[else其她结果]

end

3.在SQLSERVER里使用ORDERBY排序时,NULL值怎样处理?

使用GROUPBY分组时,NULL值又怎样处理?

4.当使用orderby排序时,SQL中是将NULL默认为无穷小,当使用groupby分组时,SQL中是将NULL作为与该字段内其她数据类型相同依旧为NULL数据进行分类统计

2.试验总结(试验过程中出现问题、处理方法、结果怎样或其它)

此次试验中碰到了很多问题,在求出每门课课程号、选课人数,结果存入数据库表T1这题中,没有使用做连接,这么,因为前一题删除了选了JAVA学生统计,造成查结果中缺乏了统计。

在包含NULL题目中,均加上了‘<

NULL’条件,以后才知道不用加,null不参与计数。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1