数据结构实验报告54354Word文档下载推荐.docx
- 文档编号:19661912
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:34
- 大小:931.26KB
数据结构实验报告54354Word文档下载推荐.docx
《数据结构实验报告54354Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数据结构实验报告54354Word文档下载推荐.docx(34页珍藏版)》请在冰豆网上搜索。
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,分别建立以上三张表,并完成数据录入。
(表结构及数据参见教材)
数据库STC
表STU
表COUTSES
表SC
2)分析并建立各表的主码,用下划线在上面表结构中标出主码。
表STU的主码为Sno
表COUTSESDE主码为Cno
表SC的主码为sno、cno
3)建立各表之间的关联,请简述操作步骤。
4)参考实验指导书的【第5章数据库的备份和还原】,使用企业管理器对数据库STC进行备份,并尝试在个人电脑与机房电脑上进行还原,请简述备份、还原操作的步骤。
3.在SQLSERVER2000的查询分析器中使用SQL语言完成以下任务。
参考实验指导书《数据库系统实验指导教程》【实验1.1数据定义】,建立数据库SCHOOL,分别建立students、teachers、courses、choices四张表,表结构见实验指导书P236【附录A】。
1)用SQL语言创建数据库、建表。
建表时为各表建立关键字、设置外码,数据暂不录入,请写出对应的SQL命令。
createdatabaseSCHOOL
CREATEtablestudents
(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)notnullreferencesstudents(sid),
tidchar(10)referencesteachers(tid),
cidchar(10)notnullreferencescourses(cid),
socreint
2)为students表、courses建立按主键増序排列的索引,请写出相应的SQL命令。
createindexStuonstudents(sidASC)
createindexCouoncourses(cidASC)
3)删除course上的索引,请写出相应的SQL命令。
dropindexcourses.Cou
4)在SCHOOL数据库中的students表中增加一个“出生日期”字段,类型为日期时间型,请写出对应的SQL命令。
altertablestudents
add出生日期datetime
5)删除students中的“出生日期”字段,请写出对应的SQL命令。
dropcolumn出生日期
6)删除SCHOOL数据库中的students表,请写出对应的SQL命令。
sp_help
altertablechoices
dropFK__choices__sid__7D78A4E7
droptablestudents
4.使用企业管理器创建数据库SCHOOL,实现内容与实验预习内容3完全相同。
建立数据库SCHOOL
表students
表teschers
表courses
表choices
1.设置主码
2.建立索引
3.删除索引
4.增加出生日期字段
删除字段
5删除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数据库的导入与导出】部分;
2.自行练习实验指导书【实验1.1数据定义】部分。
实验报告
1.简述本次实验所用到的SQL命令及其功能。
定义基本表,建表
Createtable<
表名>
(<
列名>
<
数据类型>
[列级完整性约束条件]
[,<
表级完整性约束条件>
)
修改基本表,增加新列,删除某一列
Altertable<
[add<
新列名>
[完整性约束]]
[drop<
完整性约束名>
]
[altercolumn<
删除基本表
Droptable<
[restrict|cascade]
查看当前表的索引、约束
Sp_help
建立索引和删除索引
Create[unique][cluster]index<
索引名>
On<
(<
[<
次序>
][,<
[次序]]…)
2.在MSSQLSERVER中数据库的“分离|添加”与“备份|还原”是相同的功能吗?
不是。
分离|添加是要求当前数据库不在运行,分离后可以在任一台装有SQLSERVER的电脑上添加,且添加完成后与你分离时的状态完全一样。
而备份|还原功能在数据库运行时也可以进行备份还原的,经常是为了数据库出现错误后能够还原到之前备份的状态
3.实验总结(实验过程中出现的问题、解决方法、结果如何或其它)
由于这是第一次实验,也是第一次使用SQLSERVER,所以在做实验时遇见了很多小问题,但是在经过看实验指导书和老师在上课时讲解过的操作最终完成了实验。
在删除students表时,按照书上的SQL语句运行但是系统提示说不能删除,因为有个外键约束所以拒绝删除,最后在Sp_help语句查询students表的外键约束名,删除它再按照书上的语句最后终于删除了students表
实验二——SQL语句
1.熟悉SQL的数据查询语言,能使用SQL进行单表查询、连接查询、嵌套查询、集合查询和统计查询,能理解空值的处理;
2.熟悉数据库的数据更新操作,能使用SQL语句对数据库进行数据的插入、更新、删除操作;
3.熟悉SQL支持的有关视图的操作,能创建、查询及取消视图;
4.了解NULL在数据库中的特殊含义,掌握使用SQL进行与空值相关的操作;
在认真阅读教材及实验指导书【实验1.2数据查询】、【实验1.3数据更新】、【实验1.4视图】和【实验1.6空值和空集的处理】的基础上,上机前请预习以下内容,并在空白处填写相应的步骤或命令。
1.使用SCHOOL数据库,在SQLSERVER2000的查询分析器中使用SQL语言完成以下操作。
请在空白处填写相应的SQL命令。
1)查询年级为2001的所有学生的名称,按编号顺序排列;
selectsname
fromstudents
wheregrade='
2001'
orderbysidasc
2)查询所有课程名称中含有data的课程编号;
selectcid
fromcourses
wherecnamelike'
%data%'
3)统计所有老师的平均工资;
selectavg(salary)
fromteachers
4)查询至少选了3门课的学生编号;
selectsid
fromchoices
groupbysid
havingcount(*)>
3
5)查询学号为80009026的学生的姓名、所选课名及成绩;
selectsname,cname,score
fromstudents,courses,choices
wherestudents.sid='
800009026'
andstudents.sid=choices.sidandcourses.cid=choices.cid
6)查询没有学生选的课程编号;
wherenotexists(
selectcid
fromchoices
)
7)查询既选了C++又选了Java课程的学生编号;
wherecidin(
fromcourses
wherecname='
C++'
andsidin(
selectsid
wherecidin(
selectcid
fromcourses
wherecname='
Java'
)
8)查询选了C++但没选Java课程的学生编号;
andsidnotin(
9)向STUDENTS表中插入“LiMing”的个人信息(编号:
700045678,名字:
LiMing,Email:
LX@,年级:
1992);
insert
intostudents(sid,sname,email,grade)
values('
700045678'
'
LiMing'
LX@'
1992'
10)将“LiMing”的年级改为2002;
updatestudents
setgrade=2002
wheresname='
11)删除所有选了Java课程的学生选课记录;
delete
12)求出每门课的课程号、选课人数,结果存入数据库表T1中。
createtableT1(
cidchar(10),
mint
intoT1(cid,m)
selectcourses.cid,count(sid)
fromcoursesleftjoinchoicesoncourses.cid=choices.cid
groupbycourses.cid
selectdistinct*
fromT1
orderbycidasc
13)查询所有选课记录的成绩并换算为五分制(注意NULL的情况);
createtableA(
sscorechar(10)
intoA(sscore)
selectscore
updateA
setsscore=sscore/20
selectscore,sscore
fromchoices,A
select*
最佳:
selectscore,score/20
14)查询成绩小于0的选课记录,统计总数、平均分、最大值和最小值(注意查询结果中NULL的情况);
selectcount(sid),avg(score),max(score),min(score)
wherescore<
60
15)按成绩顺序排序显示CHOICES表中所有记录。
(使用ORDERBY排序,注意NULL的情况);
orderbyscoredesc
16)创建视图V1,显示学生姓名、所选课名称、任课教师名;
createviewV1(sname,cname,tname)
as
selectsname,cname,tname
fromstudents,courses,teachers,choices
wherestudents.sid=choices.sidandteachers.tid=choices.tidandcourses.cid=choices.cid
withcheckoption
17)取消V1视图;
dropviewV1
2.使用STC数据库,在SQLSERVER2000的查询分析器中使用SQL语言完成以下操作。
请在空白处填写相应的SQL命令或其它内容。
1)创建视图V2,显示计算机(CS)系学生信息;
(结合下面的b)小题,V2视图创建2次,分别使用/不使用WITHCHECKOPTION选项)
(1)不加WITHCHECKOPTION
(2)加WITHCHECKOPTION
createviewV2
fromSTU
wheresdept='
CS'
2)插入元组(99999,张三,20岁,男,PH)到V2中,运行结果如何?
(观察WITHCHECKOPTION对结果的影响);
(1)不加WITHCHECKOPTION的结果
(2)加WITHCHECKOPTION的结果
服务器:
消息550,级别16,状态1,行1
试图进行的插入或更新已失败,原因是目标视图或者目标视图所跨越的某一视图指定了WITHCHECKOPTION,而该操作的一个或多个结果行又不符合CHECKOPTION约束的条件。
语句已终止。
3)在V2基础上,查询所有计算机系女生信息;
fromV2
wheressex='
女'
3.结束本次实验
1.掌握SQLSERVER中流控制语句及其它常用编程语句;
1)使用查询分析器,编写代码,输出乘法口诀表。
2.自行练习实验指导书P24【实验1.2数据查询】1.2.5自我实践部分;
1)select*
2)selectsid
3)selectcid
wherehour<
88
4)selectsname
wheresidin(
havingsum(score)>
400)
5)selectcount(cid)
6)select*
7)selectcid,count(sid)
groupbycid
8)selectsid
wherescore>
=60
9)selectstudents.sid,count(cid)choices_count,avg(score)avg_score
fromchoices,students
wherestudents.sid=choices.sid
groupbystudents.sid
10)selectstudents.sid,students.sname
fromstudents,courses
whereamein(
selectcname
wherecname='
java'
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值又如何处理的?
当使用orderby排序时,SQL中是将NULL默认为无穷小的
当使用groupby分组时,SQL中是将NULL作为与该字段内其他数据类型相似仍旧为NULL数据进行分类统计的
4.实验总结(实验过程中出现的问题、解决方法、结果如何或其它)
在这次实验中,用查询分析器编写SQL语句查询既选了C++又选了JAVA课程是,最先想到的是用连接查询,之后考虑到用嵌套查询也可以而且比连接查询更方便。
在创建视图V2时,分别用不加WITHCHECKOPTION和加WITHCHECKOPTION语句来创建,但是在用不加WITHCHECKOPTION的语句来创建后插入信息
intoV2
99999'
张三'
男'
20'
PH'
),查询视图时不显示张三的信息,再删除视图用加WITHCHECKOPTION语句创建视图V2后,在插入张三的信息后提示不能插入重复键,在多次尝试和思考后终于明白不加WITHCHECKOPTION语句创建的视图V2是可以通过视图向基本表插入数据的,虽然视图因为张三的信息不是的系别不是CS而没变化,但是数据已经插入到基本表中了。
而加WITHCHECKOPTION后插入的信息不是CS系的会拒绝插入的。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 实验 报告 54354