您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据挖掘与识别 > 上机实验4:创建与管理其他数据库对象、数据库保护与数据传输
实验报告课程名称:数据库系统A指导教师:定会学号20171107082姓名陈坤上机地点专业软件工程班级1702时间上机内容创建与管理其他数据库对象、数据库保护与数据传输一、实验目的及要求掌握创建管理索引、视图、存储过程和触发器对象的使用方法二、实验设备(环境)及要求实验环境已安装SQLServer2008的计算机;具有局域网环境,有固定IP;实验要求1.掌握索引的创建和管理方法;2.掌握视图的创建和管理方法;3.掌握存储过程的创建和管理方法;4.掌握触发器的创建和管理方法;5.完成实验报告三、实验内容与步骤请使用T-SQL完成以下内容:请使用T-SQL语句实现进行以下操作:1.在student表的sno列上创建唯一性聚集索引index_snousestugocreateuniqueclusteredindexindex_snoonstudent(sno)2.在student表的sname列上创建唯一性非聚集索引index_snameusestugocreateuniquenonclusteredindexindex_snameonstudent(sname)3.在student表的sage列上创建非聚集索引index_sageusestugocreatenonclusteredindexindex_sageonstudent(sage)4.在sc表的sno列和cno列上创建复合非聚集索引index_sno_cnousestugocreateindexindex_sno_cnoonsc(sno,cno)5.将索引index_sno_cno更名为index_snocnoexecsp_rename'sc.[index_sno_cno]','index_snocno','index'6.删除上面的索引index_snocnousestugodropindexindex_snocnoonsc7.查看student表的索引基本信息EXECsp_helpindexstudent8.创建一个只选修8号课程的学生情况的视图信息usestugocreateviewxuanxiu_8asselectstudent.sno,sname,sage,sdept,ssexfromstudent,scwherestudent.sno=sc.snoandcno='8'groupbystudent.sno,sname,sage,sdept,ssexhavingcount(cno)=19.创建一个视图view_stu,只包含学生的学号,姓名,年龄信息createviewview_stuasselectsnoas学生学号,snameas姓名,sageas年龄fromstudent10.在上一题视图的基础上创建年龄在20岁以上的的学生的视图createviewview_stu1asselectsnoas学生学号,snameas姓名,sageas年龄fromstudentwheresage2011.创建一个包含不及格同学及90分以上同学的学号、姓名、课程名称及成绩的视图createviewview_stu2asselectstudent.snoas学生学号,snameas姓名,cnameas课程名,gradeas成绩fromstudent,sc,coursewherestudent.sno=sc.snoandsc.cno=course.cnoandgrade60andgrade9012.选择一个上面创建的视图,查看视图的信息select*fromview_stu1go13.选择一个上面创建的视图,修改删除其中的一列deleteview_stu1where学生学号='200515001'select*fromview_stu114.选择一个上面创建的视图进行删除操作dropviewview_stu115.从视图view_stu中查询19岁的男生记录select*fromview_stuwhere年龄=1916.通过视图view_stu中插入一行数据。学号:2006010010,姓名:赵青,年龄:insertintoview_stuvalues('200610010','赵青','20')select*fromview_stu17.将视图view_stu中姓名为“李蕾”的年龄改为“22”updateview_stuset年龄='22'where姓名='李蕾'18.通过视图view_stu将姓名为“李贵”的记录删除deleteview_stuwhere姓名='李贵'19.自行选择上面创建的一个视图插入一个记录。insertintoview_stuvalues('200515029','刘海涛','21')select*fromview_stu20.自行选择一个视图根据一定的条件进行查询。select*fromview_stuwhere年龄2021.自行选择联合一张表和某个视图进行复合查询。selectdistinct学生学号,姓名,年龄fromview_stu,scwhereview_stu.学生学号=sc.snoandgrade8022.创建存储过程返回全部男生选课及成绩等相关信息createprocedurestu_infoasselectdistincta.sno,sname,ssexfromstudenta,scwherea.sno=sc.snoandssex='男'usestuexecstu_info23.创建一个带输入参数的存储过程,能够根据参数向学生表中插入一条记录CREATEPROCEDUREstudent_insert(@snochar(9),@snamechar(8),@ssexchar(2),@sageint,@sdeptchar(4))asinsertintostudent(sno,sname,ssex,sage,sdept)values(@sno,@sname,@ssex,@sage,@sdept)/*调用存储过程*/EXECstudent_insert'200515002','王旺','女',20,'it'24.创建一个带输入参数的存储过程,根据不同的学生名参数,返回该学生的所有课程成绩。usestuGOCREATEPROCEDUREstu_sc2(@yxchar(6))ASSELECTDISTINCTa.sno,sname,cno,gradeFROMstudenta,scWHEREa.sno=sc.snoandsname=@yxGOExecstu_sc2'张力'25.创建一个带输入输出参数的存储过程,根据输入的系部名,统计该系学生的平均成绩并输出。USEstuGOCREATEPROCEDUREPINGJUN@stu_sdeptvarchar(8),@averageintOUTPUTASSELECT@average=avg(grade)FROMstudent,scWHEREstudent.sno=sc.snoANDsdept=@stu_sdeptGODECLARE@GintEXECPINGJUN'CS',@GOUTPUTSELECT@G26.查看第22和23题的存储过程的有关信息,并查看它们的定义。修改第22题的存储过程,改为查询全部女生的资料。删除第23题的存储过程。alterprocedurestu_infoasselectdistincta.sno,sname,ssexfromstudenta,scwherea.sno=sc.snoandssex='女'usestuexecstu_infodropPROCEDUREstudent_insert27.创建student表的DELETE触发器,当一个学生退学后,信息从student表中删除,触发在sc表中删除该生选课情况。createtriggerDELETETEstu1onstudentafterdeleteasselectsname,ssex,sage,sdeptfromdeleteddeletefromstudentwheresname='张三'select*fromstudentwheresname='张三'28.创建一个触发器,检查在sc表中输入一门课程成绩,必须符合在0到100分范围内。createtriggerinsertsc_gradeonscafterinsertasifexists(select*frominsertedwhere(grade100orgrade0))beginprint'成绩应在~100。'rollbackendgoinsertscvalues(1,2,101)四、实验结果分析以及出现问题出现了各种各样的错误,尤其是最后的两个实验。让我很是难受了一阵子,查了各种资料以及上网百度查了各种相关知识点。最后总算解决了问题。也让我对这些知识点了解更多了,老师当时上最后几章时,由于赶进度没太多时间仔细讲解,大多数是一笔带过。这一次实验让我发现了更多的知识
本文标题:上机实验4:创建与管理其他数据库对象、数据库保护与数据传输
链接地址:https://www.777doc.com/doc-7208137 .html