《Answer-实验六.docx》由会员分享,可在线阅读,更多相关《Answer-实验六.docx(4页珍藏版)》请在课桌文档上搜索。
1、一、试会目的 右取利用米剂分析弄成对象黄源,理叁制意存储过程; 莺取存储过程的执行与修护; 塞得运用存传过程来维护效完暮性.二、斌验内容本次试l所用的数据串主要包括的效据我为:学生、聚程和成果,共创鹿牌本如下:CREATETAB1.Estudentinfo(学号char(10),姓名char(8),性别char(2),年fitint,生日期datetime)GOCREATETAB1.Ecourse(课程号char(4),课程名varchar(20)z学分int)GOCREATETAB1.EStumark(考试号chr(10),学号Char(IO),第JRdecimal(18.1).机果deci
2、mal(18.1)GO(1)一个能向创痉学生战中播入一条记录的存得过程Inart-Student,该过程知昊5个参数,分别用来传道学号、姓名、性别、年级、谎生日甯6个值.createprocinsert.studentsnochan10,snamechar8.sexchar2i.sgradeint.Sbirthdatetimeasbegininsertintostudentinfovaluessno.sname.sex.sgrade.sbirthend(2)写出执行在得过程Insert-student的SQ1.语句,向学生哀中*入一个新同学,并供应相应的实介值(实介值自定)execinsert
3、_stIident100OO.三=,j,l99Oll(3)创痛一个向课程表中播入一门斯谭程的存储过程Insert-course,该存储过程项昊三个参歙.分别用耒传ItitflHh崇程名、学分.但允许参数“学分”的默认值为2,即当执行春ItitSInsert-course甘,未修介数“学分”供应突介值廿,存得过香将按默认值2进行运算.createPnMrinscrt_coursccnCharl4:.Cnamevarchar20).creditint=2asbegininsertintocourseVaIUanw.crcditend(4)执行存传过息Insert.course,向爆程表CoUrSe
4、中也入一门断裳哀.分两科状况写出相应的SQ1.吩附:供应三个实分值执行存倚过程In8rt.cour8eex”加Ser1.mIrSe,100.dbV4只供鹿二个实,值执行存储过程InSerJcourse,即:不供应与介数“学分”对应的实值.execinsert_coursecno*1002*.cnamem.Creditdefaullexecisert_course10,net,default(5)创奏一个名为QUeryUtUSyste的存传过程,该存储过程的功能是依务学号查询学生盘中某一学生的姓名、冬皴、性别及优生日期.createprocedurequcrystusystemSnOCharIO
5、iasbeginselect姓名年fit性别K生日期fromstudentinfowhere学号snoend(6)执行存储过程QUeryUtU8te,左诗学号为“20060201”的学生的学号、M号、隹则及徒生日期.写出充虚此功能的SQ1.吩咐.execquery-stusystem2(M)6)20(7)修改存储过程QUery.stusyste,,加自定又处理说信息,用来提示指定的学生学号不存在A1.TERprocedurequery_stusystem8snochar(10)asIF(selectcount(*)fromstudentinfowhere学号=sno)=0beginPRINT,
6、不存在点学生,RETURNendE1.SEBEGINselct姓名,年fit,性别诞生日期fromstudentinfowhere学号=snoEND(8)诂制竟存储过罐.杳着本次才箕平均分以及未过才忧的学员名单.CreateProCchcck.scorcCS1.niImchan10asbeginselectteit_numas考试号,:1、*1簿送成果)也试平均成果.机试成果.机试平均成JivfromStumarkwhere考试号test_numselect姓名as未遢过考试名单fromsludentino,stumark11htcStUCknQinfU学号Ftunuirk学号and婚试成果6
7、0or机试成果:60)and考试号(test-,numendMlftexeccheckscore,O(M)(9)修改上*h由于每次考长的戏,程度不一样,每次IKK和机长的及格发可能廿改变(不再是60分),这导敢考试的评列结果也相应改变.分析:上述存储过程添加2个入介ItsrittenPaM(传我及格或)和,IabPass(机试及格线)alterproccheck_scoretest_numchar10(g)rittenpasdecimal18I).labpassdecimal18.1HSbeginselecttcst_numa考试号:a*珞试成果V辖试平均成果,y机由ftX机试平均成果from
8、Stumarkwhere考试号test_numselect姓名as,未通过考试名单,fromstudentinfo.stumarkwhereStUSyStCm.学号=SIlmHrk.学号and(辖试成果:WrittBnPasSor机试成果施IIabPaWand考试号二est_numend-1Mfexeccheckscore(M)OI*.75.75(10)如何修改上做存储过理,依据今次统考指定的及格分数线,是示通过才斌的学员名单并返回及格人款.(类示:用出参数)alterproccheck_scorfromstumarkhere箔试成果A=wi*ittcnpHm机试成果=labpassand考试
9、号(test-numEnd-iMTtdcdarenumintexecCheCk_犍Ore20(Hr,75,75.numoutputselectnumift过考试人数方法二I在查询中运用CoMp1.TE子句createproccheck_score2_ltest_numchar10i.writtenpassdecimal118.Iabpassdecimal)18.1asbvginselect姓名as通过考试名单froms(usystcmtumarkhereStusysteIn学号Stllmark学号and箔试成果”3TittenPaSS:ind机试成果labpassandCest_mimcomp
10、utecou姓名end(ID*如有运18及格率?(提示:用,出参数存储过程中用杳*鼠值谱句分别求出及格人数与总人数,再求出及格率)alterproccheck-score3test_numchan10hwrittenpassdecina!18.IhIabpassdecimal)18.1hrateinioutputAsbegindeclarePaSSIWmreal.sum_numrealselectPHSSnUm二CmlIltKifromstumark“here电试成果=Mrittcnpassnd机祓成果=labpaxsand考试号test_numselectsum_iniin=mshnarkwhere考试号test_numselectrate=ipassnumsum_numi100end-4M.留意保存人数的两个变量的类Sl不能为ini)Declarerateintexeccheck-score3,000,60,60,rateoutputselectrate,考试及格率“。