![SQLServer試驗三分解_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/7/aceba81e-ae71-4c1d-ab33-b91aa49864c6/aceba81e-ae71-4c1d-ab33-b91aa49864c61.gif)
![SQLServer試驗三分解_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/7/aceba81e-ae71-4c1d-ab33-b91aa49864c6/aceba81e-ae71-4c1d-ab33-b91aa49864c62.gif)
![SQLServer試驗三分解_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/7/aceba81e-ae71-4c1d-ab33-b91aa49864c6/aceba81e-ae71-4c1d-ab33-b91aa49864c63.gif)
![SQLServer試驗三分解_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/7/aceba81e-ae71-4c1d-ab33-b91aa49864c6/aceba81e-ae71-4c1d-ab33-b91aa49864c64.gif)
![SQLServer試驗三分解_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/7/aceba81e-ae71-4c1d-ab33-b91aa49864c6/aceba81e-ae71-4c1d-ab33-b91aa49864c65.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、實驗七(1)創(chuàng)建并運行存儲過程 student_grade ,要求實現如下功能:查詢 studb數據庫中每 個學生各門課的成績,其中包括每個學生的sno、sname、cname和score 。create procedure student_grade as select student . sno , student . sname , course . cname , student_course . score from student join student_course on student . sno =student_course . sno join course on co
2、urse . cno =student_course . cno運行結果代碼:use Studb go execute student_grade gosnocname筮01日1數據率原理6620709010103程就計H幗配683O7D5mO1C5侏家具計苴機網格的0705010106郝宙計直機網絡NULLcr?050noios郝旭東軟件工程S66(POST 0115任盾板離的數學so70705010119微機原理88B7050101125朱牌律機翩7790709010127胡玉滓國的繳學76100705®10127胡玉萍瞰機原理061110705010131劃招否計苴機差礎戲12
3、0709m 0131劉腕C*記序設計88120705(10 0121劉相哲離色韻字84140709010131劉指a數據結構國1507050101131劉磁獨作親場76IB705010131刈招哲渤機翩博170709010131劉相百圖寵學SS1B0705010131劉磁金需限原理出IBD7D5010131劃招否計苴機網珞eo3D07050101131劉楠軟件工程00JI0705010215國擇數將結科MULL220705010215息拴數據庫原理卻230709010226計宜機基礎k240705010303刈高盛除柞系茄75(2)創(chuàng)建并運行名為proc_exp的存儲過程,要求實現如下功能:從
4、 student_course 表中查詢某一學生考試的平均成績。create procedure proc_exp sname varchar (8) as begin select sname , AVG( score ) from student join student_course on student . sno =student_course . sno where sname =sname group by sname end運行結果代碼:use Studbgoexecute proc_expsname = '劉招香go尸結果| Ea消息I.更疣列名(3)修改存儲過程pr
5、oc_exp ,要求實現如下功能:輸入學生學號,根據該學生所選課程 的平均成績給出提示信息,即如果平均成績在60分以上,顯示“成績合格,成績?yōu)閄X分”,否則顯示“成績不合格,成績?yōu)?XX分”;然后調用存儲過程proc_exp ,輸入學號0705010131,顯示成績是否合格。alter procedure proc_exp student_sno varchar (20) as declare avg varchar ( 20) set avg =( select AVG( score ) from student_course where sno = student_sno )if avg
6、>= 60 print '成績合格,成績?yōu)?avg+'分 else print '成績不合格,成績?yōu)?avg + '分 運行結果代碼: use Studb go declare student_sno varchar (20) select student_sno ='0705010131' exec proc_exp student_sno3消息成績合格,成績?yōu)椋旱姆?4)創(chuàng)建名為proc_add 的存儲過程,要求實現以下功能:向 student_course 表中添加 學生記錄;然后調用存儲過程proc_add ,向student_co
7、urse表中添加學生成績記錄。create procedure proc_addsno char (10),cno char (10),score tinyintas begin set nocount on if not exists(select * from student_course where sno =sno and cno =cno and score = score ) insert into student_course (sno , cno , score ) values ( sno, cno, score ) end運行結果代碼:use studb goexec pr
8、oc_add '0705010102', '0208', '80'go執(zhí)行前: -*/ 322-59.h astudb 一 冊我 EludesnocnoSCOTS07X)50103020212購07D501D1030 101期0705010105030165O7D5O1D1O60301Q705Q101P60302郭07050101190206so7050101190210se0705010125021U7707Q501D127020676070501012702106607D501D131Q1ID17607050101310102ee07D501
9、D131020684070501013102oe6807D501D1310209760705010131021078070501D13102116070501DJ31Q2123401705010131030J6007050101310302SO(J7O5O1O21502MWIL07D501D21502129 口07050102260101620705010303020975來的AHL執(zhí)行后:/江一AH. stud. B s udcDt_c>oiLrs<r EWru. £t<Ldt> - dbo. vtudj*sno50scoreD70S0101020206羽
10、nD70ED1010202126607000101030101S30706OI01O503016507090101060301ALfiD70501D106030295070501011902068007050101190210朋0705010125021077070601012702067&07050I&127Q之IQ就07050I01310IQ170D70S0101310102SB070S01D1310206840705010131020666D7050iai310Z097&D7(H)1D13102107B07QE010131021186070501013102128
11、%D70S01Q131030180D70501D13103028Q0706010215Q2Q6必上0709010215021290070501022601016ZD705010S03020975米fyui帆Z1W(5)刪除存儲過程 proc_exp 和proc_addIF OBJECT_ID ( 'proc_exp') IS NOT NULLDROP PROCEDURE proc_expIF OBJECT_ID ( 'proc_add') IS NOT NULLDROP PROCEDURE proc_add實驗八(1)創(chuàng)建觸發(fā)器student_trg,當刪除st
12、udent表中的數據時,同時刪除 student_course表中相同 的數據;然后通過刪除student表中的某個學生記錄來驗證該觸發(fā)器。create trigger student_trg on student after deleteas begin delete from student_course where sno IN( select sno from deleted ) end運行結果代碼:DELETE FROM studentWHERE sno ='0705010303'SQXJQuoryB s. . rttar 占T)*322-59. stud . .如E
13、udL _ 般,/無口工微色“ SQLQuAr4. e . . rft.tar C55)>snosnamesexbkthdfydept川noCliAfWUTKOLOiOZ金漳男IW9-07-09信計聚0607107U5QL0103程明龍男1933-03-12網絡系皿07207Q50L0105。黑男L933-05-ZL確系如0717010106和電布男LW33S-I3信計系oe071D7O5QLO119任煒祝男L-04-IZ計苴機系99U737U50L0125耨男L939-D8-0B計埠機系9gD7O5DLO127捐玉萍女1939-01-12計苴機系D97107CM5DLO13I劉招香女i
14、gaa-ii-oa計苴機系的071口心口皿】S*男1顆Tll白啕系帕0710706010226高玉骷男l(wèi)$8a-D-Z3計苴機系英0720706010303 劉周龍男183-06-li計苴機感的072出上期上他皿1他出11?既-59m2-4b v.另 I dent |1. r ttcir1B7)* 3EJ-59.5tul. efi4_corse*S810aery4 sC55)+snosnanebirthdaydept取口dassroc卜LCOEulOlOll金譯更值計系060710705010103辱颯另198-0342網珞系090720705010105陡京具S19BM5-Z1網招系W071
15、0709310106和祖京男19SS-11=13信計系06Q71O70S0I01I9任植權男1966-04-12計豆機浜的073O7DEOH0125本臻男igBMB-DS過苴機茶用073070SQID127胡玉萍烹19094)142計篁機耒0'710705010131*195-11-IS討豆機系旭07107100010215禺拄男19呢”lb網絡系典071D70S0l'Ce26高王網用19諭1023計算機鬃072*AL81MSI械士(2)修改觸發(fā)器 student_trg ,當更新 student 表中sno 的值時,同時更新student_course 表中相同的sno的值;
16、然后通過修改 student表中的某個學生的學號(sno )來驗證該觸發(fā)器ALTER TRIGGER student_trgON student AFTER UPDATEASBEGINIF UPDATE( sno )UPDATE student_courseSET sno =( SELECT sno FROM inserted ) WHERE sno IN ( SELECT sno FROM DELETED)END運行結果代碼:UPDATE studentSET sno ='0705010217'WHERE sno ='0705010215'Jj消息I<2
17、行受影響)(1行受影響)1 scuery7 z . rator C57)*322T9. studb - db©. s*GOenoscore cC705010102021266C705010103otoi88C705010105030185C7050101060301AWZC7O5O1O1O6030295C705010119020680C705010119021088C705010125021077C705010127020676(705010127021086C7O5O1O131010178C7O5O1O131010288C7OSO1O131020664C70501013102086
18、8C705010131020976C705010131021078C7050101310211%C7050101310212%C7O5O1O131030180C7O5O1O131030280C7050102150208MJLL021290C705010226OlOt62C70S010303020975*fULfULMALL-以Z-58. stud. . udent.course) SULUuery7. 3. ratorJsnoenoscoreC 0212660705010103010188070501010503018507050101060301MAL07060101060302950705
19、0101190206800706010119021088070501012502107707C6010127020676070501012702108607050101310101780705010131010288070501013102068407060101310208680705010131020976070501013!021078070501013102118607050101310212840705010131030180070501013103028007050102170208MAL07050102170212900705010226010162*MALMALMJLL刪除觸發(fā)
20、器student_trgDROP TRIGGER student_trg創(chuàng)建一個新的觸發(fā)器,要求實現“計算機系的學生選課不能超過三門”這一完整性約束,并驗證該觸發(fā)器。CREATE TRIGGER student_cho ON student_course AFTER INSERTASBEGINIF EXISTS ( SELECT sno FROM inserted WHERE sno in (SELECT sno FROM student WHEREdept ='計算機系')AND ( SELECT COUNT(*) FROMstudent_courseWHEREstudent
21、_course . sno =inserted . sno )> 3)BEGINPRINT '計算機系的學生選課不能超過三門ROLLBACK TRANSACTION ENDEND8678888468767886848080實驗九(1)利用游標逐行顯示所查詢的數據塊的內容:在student表中定義一個包含sno、sname>sex和dept的只讀游標,游標名為c_cursor,并將游標中的數據逐條顯示出來。1 .在數據庫引擎上查詢文檔中輸入如下代碼:declare c_cursor scroll cursor forselect sno , sname , sex , dep
22、t from student for read onlyopen c_cursorfetch from c_cursor2 .單擊執(zhí)行snosname sex dept11 0705010102 i金舉 再 信計系3 .接著讀取游標中的第二行,在查詢編輯器重輸入如下語句:fetch from c_cursor4 .連續(xù)單擊“執(zhí)行”按鈕,就可以逐條顯示記錄 e ,,Jsnosname sex dept1 i 0705010103 i程明龍男網絡系 l,e rmF m r,e r,e r,e r F國結果;3消息$nosname sex depti; 6而時而而口徐家興男網絡系"fa &
23、gt; Bl Id »& IJalBIUIBIlUialK旦結果肖息snosname sex dept1Q元麗而謔;郝坦東 里 信計系lkllBIBIlalBllfllBIMIBIIBIBIMIBIUIM#而結果力消息snosnane sex deptJIBIKlIBIUIBIUIBIMIBIIdllllllJIlUialU1 g 0705010113 :任博權 男 計算機系 、r ,e,廣,ri ran r«i I e r I e r I e r i e T5.最后關閉游標、釋放游標close c_cursor必消息命令已成功完成。(2) 利用游標顯示指定行的數據
24、的內容:在studen就中定義一個所在系為“計算機系”包含sno、sname> sex、和dept的游標,游標名為 c_cursor,完成如下操作: declare c_cursor scroll cursorforselect sno , sname , sex , deptfrom student where dept ='計算機系 for read onlyopen c_cursor1 .讀取第一行數據,并輸出; fetch first from c_cursor國結果I-$疝snosrame sex depti百6而行*河q任鎮(zhèn)板里計算機系 、m I e 1 e fe m
25、 m rei m m m m E2 .讀取最后一行數據,并輸出; fetch last from c_cursor結果_s消息snosname sex dept1叵型>6儂高玉昭 臭 計算機系3 .讀取當前行的前一行數據,并輸出; fetch prior from c_cursor里結果消息 sncsname sex d 印t1 rb70501013rj劃招番女計算機系4 .讀取從游標開始的第三行數據,并輸出。 fetch absolute 3 from c_cursor|回結果IW標sncsname sex dept1而6壇而萬:胡玉萍女計算機系 S-iraiM'iraiB
26、39;iniiBiriHirimaiB'iraiBiri'(3) 利用游標修改指定的數據元組:在student表中定義一個所在系為“計算機系”,一個包含sno、sname> sex、和dept的游標,游標名為 c_cursor,將游標中絕對位置為 3的 學生姓名改為“胡平”,性別改為“男”。declare c_cursor scroll cursor for select sno , sname , sex , dept from student where dept ='計算機系' for update of sname , sexopen c_curs
27、orfetch absolute 3 from c_cursorupdate studentset sname ='胡平,sex ='男 where current of c_cursorfetch absolute 3 from c_cursor國結果島消息 snosname sex dept1 r07DK)-i0127-'l胡平 臭計算機系(4) 編寫一個使用游標的存儲過程并查看運行結果,要求該存儲過程以課程名( cname)和系(dept)作為輸入參數,計算指定系的學生指定課程的成績分布情況,要求分別輸出大于90, 8089, 7079, 6069和60分以下的學生人數。create procedure proc_discname varchar ( 20),asbegindeclarec_cursor cursor select count (*) less60 from student_course join student on student.sno =student_course.snojoincourse on o =student_owheredept =dept andcname =cname andscore <60
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 專職教室聘用合同范例
- 到期合同范例
- 住宿簽單協議合同范例
- 出口汽車合同范本
- 出售抵押車合同范例
- 傳輸分包合同范例
- 產品獨占許可合同范例
- 公寓物業(yè)服務合同范例
- 醫(yī)院采購藥品合同范本
- 分包給合同范例
- 2025年人教五四新版八年級物理上冊階段測試試卷含答案
- 2025新人教版英語七年級下單詞表(小學部分)
- 2025年春季1530安全教育記錄主題
- 礦山2025年安全工作計劃
- 基本藥物制度政策培訓課件
- 2025年包裝印刷項目可行性研究報告
- 2025年九年級物理中考復習計劃
- 企業(yè)融資報告特斯拉成功案例分享
- 給客戶的福利合同(2篇)
- 《銀行融資知識》課件
- SWITCH 勇者斗惡龍11S 金手指 版本:v1.0.3 最大金幣 最大迷你獎章 32倍經驗 最大攻擊 所有材料
評論
0/150
提交評論