您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据结构与算法 > 数据库实验报告-(4)
框架三层,局部为二层钢构。本工程外脚手架采用落地式钢管脚手架,外架随主体结构上升,同步搭设,比操作面高出一步,确保主体及外装修的正常安全施工。一实验题目1.索引的建立和删除操作2.视图的创建、修改、更新和查询操作二实验目的1.掌握数据库索引建立与删除操作,掌握数据库索引的分类,并了解建立数据库索引的意义、作用。2.掌握视图的创建和查询操作,理解视图的使用,理解实图在数据库安全性中的作用。三实验内容1.索引的建立和删除操作(1)在S表中,建立按照sno升序的惟一性索引snoIDX。(2)在SC表中,建立按照学号升序和课程号降序的唯一性索引scIDX。(3)在S表中,按照生日建立一个非聚簇索引birthdayIDX。(4)在C表中,建立一个按照课程名升序的聚簇索引cnameIDX。(5)删除索引cnameIDX。2.视图的创建、修改、更新和查询操作(1)建立一个关于所有女生信息的视图S_GIRL。(2)将各系学生人数,平均年龄定义为视图V_NUM_AVG(3)建立一个视图反映学生所选课程的总学分情况TOTAL_CREDIT。(4)建立一个所有学生课程成绩的视图S_GRADE,包括基本学生信息,课程信息和成绩。(5)在视图S_GRADE基础之上,建立一个两门课以上成绩不及格的学生情况视图FAIL_GRADE。(6)建立一个至少选修了4门课及4门课以上的学生信息的视图SC_FOUR。(7)修改视图S_GIRL,要求只显示1997年以前出生的女生信息。(8)在视图FAIL_GRADE查询不及格超过2门课的学生信息。(9)删除视图S_GRADE。(10)通过视图S_GIRL,将“王丹”的名字修改为“汪丹”,并查询结果。(11)通过视图S_GIRL,新增一个学生信息(“刘兰兰”,“女”,“计算机学院”,1996-8-8),并查询结果。(12)通过视图S_GIRL,删除1995年出生的女生信息,并查询结果。(13)通过视图S_GRADE,将“汪丹”的名字修改为“王丹”,是否可以实现,请说明原因。(14)通过视图COMPUTE_AVG_GRADE,将“”学生的平均分改为90分,是否可以实现,请说明原因。四实验要求1.要求掌握索引的类型,以及创建索引时的注意事项,例如每个表只能创建一个聚集索引,可以创建非聚集索引最多为249个,等等。2.理解创建视图的目的和意义。掌握创建视图时需要考虑的原则:只能在当前数据库中创建视图、视图名不得与该用户的表名相同、可在视图上建立视图、定义视图不能包括ORDERBY等关键字、框架三层,局部为二层钢构。本工程外脚手架采用落地式钢管脚手架,外架随主体结构上升,同步搭设,比操作面高出一步,确保主体及外装修的正常安全施工。不能建立临时视图,等等。3.报告中由同学写明具体的操作意图(文字描述)、操作命令(SQL语句)、和执行结果(文字描述+适当截图)。4.对于重要的运行界面和结果窗口,可以用Alt+PrintScreen来截取当前窗口,并粘贴到实验报告中。五实验步骤:1.索引的建立和删除操作2.在S表中,建立按照sno升序的惟一性索引snoIDX。createuniqueindexsnoIDXonS(Snoasc);运行结果:结果显示如图1:图表1建立索引snoIDX3.在SC表中,建立按照学号升序和课程号降序的唯一性索引scIDX。代码:createindexscIDXonSC(Snoasc,Cnodesc);运行结果:结果显示如图2:图表2在SC表建立索引scIDX。4.在S表中,按照生日建立一个非聚簇索引birthdayIDX。代码:createNONCLUSTEREDindexbirthdayIDXonS(Sbirthdayasc);运行结果:显示结果如图3所示命令已成功完成。命令已成功完成。命令已成功完成。框架三层,局部为二层钢构。本工程外脚手架采用落地式钢管脚手架,外架随主体结构上升,同步搭设,比操作面高出一步,确保主体及外装修的正常安全施工。图表3建立索引birthdayIDX5.在C表中,建立一个按照课程名升序的聚簇索引cnameIDX。代码:createCLUSTEREDindexcnameIDXonC(Cnoasc);运行结果:显示结果如图4:图表4按照课程名升序的聚簇索引cnameIDX。6.删除索引cnameIDX。代码:dropindexC.cnameIDX运行结果:显示结果如图5,无索引,被删除:图表57.视图的创建、修改、更新和查询操作命令已成功完成。命令已成功完成。框架三层,局部为二层钢构。本工程外脚手架采用落地式钢管脚手架,外架随主体结构上升,同步搭设,比操作面高出一步,确保主体及外装修的正常安全施工。8.建立一个关于所有女生信息的视图S_GIRL。createviewS_GIRLasselect*fromSwhereS.Ssex='女';运行结果:删除“;”代码:createviewS_GIRLasselect*fromSwhereSsex='女'运行结果:查询显示结果:select*fromS_GIRL符合条件的结果如下图6所示:图表69.将各系学生人数,平均年龄定义为视图V_NUM_AVG代码:createviewV_NUM_AVGasselectcount(Sno),avg(Sage),SdeptfromSgroupbySdept运行结果:正确代码:createviewV_NUM_AVGasselectcount(Sno)DeptNum,avg(Sage)Dept,SdeptfromSgroupbySdept运行结果:显示结果select*fromV_NUM_AVG如图7所示DeptNum为各系学生人数,Dep为平均年龄服务器:消息170,级别15,状态1,过程S_GIRL,行3第3行:';'附近有语法错误。命令已成功完成。服务器:消息4511,级别16,状态1,过程V_NUM_AVG,行1创建视图或函数失败,因为没有为第1列指定列名。命令已成功完成。框架三层,局部为二层钢构。本工程外脚手架采用落地式钢管脚手架,外架随主体结构上升,同步搭设,比操作面高出一步,确保主体及外装修的正常安全施工。图表710.建立一个视图反映学生所选课程的总学分情况TOTAL_CREDIT。代码:createviewTOTAL_CREDITasselectSno,sum(Ccredit)astotal_creditfromSCjoinConC.Cno=SC.CnogroupbySno运行结果:显示结果如图8所示TOTAL_CREDIT为学生所选课程的总学分情况:图表811.建立一个所有学生课程成绩的视图S_GRADE,包括基本学生信息,课程信息和成绩。createviewS_GRADEasselectS.Sno,S.Sname,C.Cname,C.Ccredit,SC.GradefromSC,C,SwhereS.Sno=SC.SnoandSC.Cno=C.Cno运行结果:显示结果:select*fromS_GRADE结果如图9所示:基本信息,课程信息和成绩图表912.在视图S_GRADE基础之上,建立一个两门课以上成绩不及格的学生情况视图FAIL_GRADE。代码:createviewFAIL_GRADE命令已成功完成。命令已成功完成。框架三层,局部为二层钢构。本工程外脚手架采用落地式钢管脚手架,外架随主体结构上升,同步搭设,比操作面高出一步,确保主体及外装修的正常安全施工。asselectSno,count(*)SnoNumfromS_GRADEwhereGrade60groupbySnohavingcount(*)=2运行结果:查询视图符合条件的结果:select*fromFAIL_GRADE如下图所示,没有符合选修两门且不及格的学生信息图表1013.建立一个至少选修了2门课及2门课以上的学生信息的视图SC_FOUR。代码:createviewSC_FOURasselectSno,count(*)CnoNumfromSCgroupbySnohavingcount(*)=2运行结果:查询视图符合条件的结果:select*fromSC_FOUR显示结果如下图11:学号为0001得学生选修3门,0002学生和0003学生选修了3门;图表11查询四门以上,数据库中没有符合条件的学生14.修改视图S_GIRL,要求只显示1997年以前出生的女生信息。代码:alterviewS_GIRLselect*fromSwhereSsex='女'andSbirthday='1997-1-1'运行结果:修改后代码:少了AS,修改视图同ALTERalterviewS_GIRLasselect*fromSwhereSsex='女'andSbirthday='1997-1-1'运行结果:命令已成功完成。命令已成功完成。服务器:消息156,级别15,状态1,过程S_GIRL,行2在关键字'select'附近有语法错误。命令已成功完成。框架三层,局部为二层钢构。本工程外脚手架采用落地式钢管脚手架,外架随主体结构上升,同步搭设,比操作面高出一步,确保主体及外装修的正常安全施工。显示结果学生都满足1997年之前:图表1215.在视图FAIL_GRADE查询不及格超过2门课的学生信息。代码:select*fromFAIL_GRADEwhereSnoNum2运行结果:显示结果:在视图FAIL_GRADE不存在不及格超过2门课;图表1316.删除视图S_GRADE。修改前数据库中存在的视图14如下图所示:图表14代码:dropviewS_GRADE删除视图后,数据库中存在的视图如下图15所示:不存在S_GRADE视图图表1517.通过视图S_GIRL,将“王思”的名字修改为“汪思”,并查询结果。修改前:视图S_GIRL基本情况如下图所示:命令已成功完成。框架三层,局部为二层钢构。本工程外脚手架采用落地式钢管脚手架,外架随主体结构上升,同步搭设,比操作面高出一步,确保主体及外装修的正常安全施工。图表16代码:alterviewS_GIRLassetSname='汪思'whereSname='王思'运行结果:语句错误:应用update,update后不用加viewas正确代码:updateS_GIRLsetSname='汪思'whereSname='王思'运行结果:显示结果如图17红色标记所示:图表1718.通过视图S_GIRL,新增一个学生信息(“刘兰兰”,“女”,“计算机学院”,1996-8-8),并查询结果。代码:insertintoS_GIRL(Sno,Sname,Ssex,Sbirthday,Sdept)values('0020','刘兰兰','女','1996-8-8','计算机')运行结果:结果显示如图:19.通过视图S_GIRL,删除1996年出生的女生信息,并查询结果。运行前信息如上图所示:代码:deleteS_GIRLwhereSbirthday='1996-12-31'andSbirthday='1996-1-1'运行结果:服务器:消息156,级别15,状态1,过程S_GIRL,行4在关键字'set'附近有语法错误。(所影响的行数为1行)(所影响的行数为1行)(所影响的行数为1行)框架三层,局部为二层钢构。本工程外脚手架采用落地式钢管脚手架,外架随主体结构上升,同步搭设,比操作面高出一步,确保主体及外装修的正常安全施工。显示结果如下图:标记所示信息被删除20.通过视图S_GRADE,将“汪思”的名字修改为“王思”,是否可以实现,请说明原因代码:updateS_GRADEsetSname='王思'whereSname='汪思'运行结果:显示结果:若是基于多个表的视图、涉及关键字段则不能修改表信息21.通过视图COMPUTE_AVG_GRADE,将“0001”学生的平均分改为90分,是否可以实现,请说明原因。创建视图:代码:createviewCOMPUTE_AVG_GRADEasselectSC
本文标题:数据库实验报告-(4)
链接地址:https://www.777doc.com/doc-4795314 .html