数据结构实验报告.docx

上传人:b****3 文档编号:3868032 上传时间:2023-05-06 格式:DOCX 页数:15 大小:20.12KB
下载 相关 举报
数据结构实验报告.docx_第1页
第1页 / 共15页
数据结构实验报告.docx_第2页
第2页 / 共15页
数据结构实验报告.docx_第3页
第3页 / 共15页
数据结构实验报告.docx_第4页
第4页 / 共15页
数据结构实验报告.docx_第5页
第5页 / 共15页
数据结构实验报告.docx_第6页
第6页 / 共15页
数据结构实验报告.docx_第7页
第7页 / 共15页
数据结构实验报告.docx_第8页
第8页 / 共15页
数据结构实验报告.docx_第9页
第9页 / 共15页
数据结构实验报告.docx_第10页
第10页 / 共15页
数据结构实验报告.docx_第11页
第11页 / 共15页
数据结构实验报告.docx_第12页
第12页 / 共15页
数据结构实验报告.docx_第13页
第13页 / 共15页
数据结构实验报告.docx_第14页
第14页 / 共15页
数据结构实验报告.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数据结构实验报告.docx

《数据结构实验报告.docx》由会员分享,可在线阅读,更多相关《数据结构实验报告.docx(15页珍藏版)》请在冰点文库上搜索。

数据结构实验报告.docx

数据结构实验报告

合肥师范学院

实验报告册

2013/2014学年第2学期

系别

计算机科学与技术系

实验课程

数据库原理

专业

计算机软件

班级

软件一班

姓名

夏雷

学号

95

指导教师

潘洁珠

实验名称

课时

实验报告成绩

实验

(一)——数据库基本操作

2

实验

(二)——SQL语句

6

实验(三)——数据库完整性与安全性实验

4

实验(四)——数据库编程

4

备注:

实验一——数据库基本操作

一、实验目的

1.熟悉MSSQLSERVER运行界面,掌握服务器的基本操作。

2.掌握界面操作方法完成用户数据库建立、备份和还原。

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

二、实验预习内容

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

1.熟悉SQLSERVER2000的运行环境,练习服务器基本操作:

打开、停止、关闭。

 

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

数据库名称:

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)建立各表之间的关联,请简述操作步骤。

 

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

表:

 

表;

 

3SC表:

 

建立各表的关联:

 

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

1.备份:

 

2.还原:

 

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

参考实验指导书《数据库系统实验指导教程》【实验数据定义】,建立数据库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,

emailchar(30),

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命令。

dropindex

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)自行练习实验指导书【实验SQLSERVER数据库的导入与导出】部分;

1:

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

 

2:

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

 

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

四、

实验报告

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.使用SCHOOL数据库,在SQLSERVER2000的查询分析器中使用SQL语言完成以下操作。

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

1)查询年级为2001的所有学生的名称,按编号顺序排列;

SELECTsname

fromSTUDENTS

WHEREgrade=2001

ORDERBYsidDESC

2)查询所有课程名称中含有data的课程编号;

SELECTCID

FROMCOURSES

WHERECNAMELIKE'%data%'

3)统计所有老师的平均工资

SELECTAVG(SALARY)

FROMTEACHERS

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

SELECTsid

FROMCHOICES

GROUPBYsid

HAVINGCOUNT(sid)>2

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

SELECT,,

FROMSTUDENTS,COURSES,CHOICES

WHERE=6AND=AND=

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

SELECTcid

FROMCOURSES

WHERECIDNOTIN(SELECTCIDFROMCHOICES)

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

SELECT

FROMCHOICESASX,CHOICESASY

WHERE=(SELECTcidfromcourseswherecname='C++')AND=(SELECTcidfromcourseswherecname='JAVA'))

AND=

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

SELECT

FROMCHOICESASX,CHOICESASY

WHERE=(SELECTcidfromcourseswherecname='C++')AND

IN(SELECTcidfromcourseswherecname<>'JAVA'))AND=

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

8,名字:

LiMing,Email,年级:

1992);

INSERT

INTOSTUDENTS(sid,sname,email,grade)

VALUES('8','liMing','','1992');

10)将“LiMing”的年级改为2002;

UPDATEstudents

SETgrade=2002

WHEREsname='LiMing';

11)删除所有选了Java课程的学生选课记录;

DELETE

FROMchoices

wherecid=(selectcidfromcourses

wherecname='Java');

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

createtableT1(

cidchar(10),

mint

insert

intoT1(cid,m)

select,count(sid)

fromcoursesleftjoinchoiceson=

groupby

selectdistinct*

fromT1

orderbycidasc

13)查询所有选课记录的成绩并换算为五分制(注意NULL的情况);

selectsid,tid,cid,score/20score

fromchoices

 

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

selectcount(*),avg,max,min

from(select*fromchoiceswherescore<60)a

15)按成绩顺序排序显示CHOICES表中所有记录。

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

select*

fromchoices

orderbyscore

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

createVIEWV1(sname,cname,tname)

AS

SELECTsname,tname,cname

fromstudents,teachers,courses,choices

where=and=and=

17)取消V1视图;

DROPVIEWV1

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

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

1)创建视图V2,显示计算机(CS)系学生信息;(结合下面的b)小题,V2视图创建2次,分别使用/不使用WITHCHECKOPTION选项)

 

(1)不加WITHCHECKOPTION

(2)加WITHCHECKOPTION

CREATEVIEWV2

AS

SELECT*

FROMSTUDENTS;

WHEREsdept=’CS’;

CREATEVIEWV2

AS

SELECT*

FROMSTUDENTS

WHEREsdept=’CS’;

WITHCHECKOPTION;

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

(观察WITHCHECKOPTION对结果的影响);

(1)不加WITHCHECKOPTION的结果

(2)加WITHCHECKOPTION的结果

INSERT

INTOV2

VALUES('99999','张三','男','20','PH');

命令已成功完成。

(所影响的行数为1行)

INSERT

INTOV2

VALUES('99999','张三','男','20','PH');

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

语句已终止。

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

SELECT*

FROMV2

WHERESSEX='女'

2.结束本次实验

三、实验课后训练

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

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

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

(1)查询全部课程的详细记录;

select*

fromcourses

(2)查询所有有选修课的学生的编号;

selectsid

fromchoices

(3)查询课时<88(小时)的课程的编号;

selectcid

fromcourses

wherehour<88

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

selectsid,sum(score)

fromchoices

groupbysid

havingsum(score)>400

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

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

5.自行练习实验指导书P49【实验空值和空集的处理】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-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2