sql 實(shí)驗(yàn)五 存儲過程(2012)_第1頁
sql 實(shí)驗(yàn)五 存儲過程(2012)_第2頁
sql 實(shí)驗(yàn)五 存儲過程(2012)_第3頁
sql 實(shí)驗(yàn)五 存儲過程(2012)_第4頁
sql 實(shí)驗(yàn)五 存儲過程(2012)_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、實(shí)驗(yàn)五 存儲過程學(xué)號:20092426 姓名:xx遠(yuǎn) 專業(yè):信息與計(jì)算科學(xué) 班級:2009121一、實(shí)驗(yàn)?zāi)康模?)掌握T-SQL流控制語句。(2)掌握創(chuàng)建存儲過程的方法。(3)掌握存儲過程的執(zhí)行方法。(4)掌握存儲過程的管理和維護(hù)。二、實(shí)驗(yàn)內(nèi)容1、創(chuàng)建簡單存儲過程(1)創(chuàng)建一個名為stu_pr的存儲過程:該存儲過程能查詢出051班學(xué)生的所有資料,包括學(xué)生的基本信息、學(xué)生的選課信息(含未選課同學(xué)的信息)。要求在創(chuàng)建存儲過程前請判斷該存儲過程是否已創(chuàng)建,若已創(chuàng)建則先刪除,并給出“已刪除!”信息,否則就給出“不存在,可創(chuàng)建!”的信息。存儲過程的創(chuàng)建語句:if exists (select name

2、from sysobjects where name=stu_prand type=p) begin print 已刪除! drop procedure stu_pr endelseprint 不存在,可創(chuàng)建!gocreate procedure stu_prasselect *from student left outer join sc on (student.sno=sc.sno) left outer join course on (o=o)where classno=051存儲過程的執(zhí)行測試結(jié)果:exec stu_pr 2、創(chuàng)建帶參數(shù)的存儲過程(1)創(chuàng)建一個名為stu_proc1的存

3、儲過程:查詢某系、某姓名的學(xué)生的學(xué)號、姓名、年齡,選修課程名、成績。系名和姓名在調(diào)用該存儲過程時輸入,其默認(rèn)值分別為“%”與“林%”。執(zhí)行該存儲過程,用多種參數(shù)加以測試。存儲過程的創(chuàng)建語句:if exists (select name from sysobjects where name=stu_proc1and type=p) begin print 已刪除! drop procedure stu_proc1 endelseprint 不存在,可創(chuàng)建!gocreate procedure stu_proc1sdept nchar(10)=%,sname nvarchar(8)=林%assel

4、ect sdept,student.sno,sname,datediff(year,birth,getdate() age,cname,gradefrom student,sc,coursewhere student.sno=sc.sno and o=o and sdept like sdept and sname like sname存儲過程的執(zhí)行測試結(jié)果:execute stu_proc1 計(jì)算機(jī)系,林紅execute stu_proc1 計(jì)算機(jī)系,張虹(2)創(chuàng)建一個名為student_sc的存儲過程:可查詢出某學(xué)號段的同學(xué)的學(xué)號、姓名、總成績。(學(xué)號起始號與終止號在調(diào)用時輸入,可設(shè)默認(rèn)值

5、)。執(zhí)行該存儲過程。存儲過程的創(chuàng)建語句:if exists (select name from sysobjects where name=student_scand type=p) begin print 已刪除! drop procedure student_sc endelseprint 不存在,可創(chuàng)建!gocreate procedure student_scsno1 nchar(8),sno2 nchar(8)asselect student.sno,sname,sum(grade)總成績from student,sc,coursewhere student.sno=sc.sno a

6、nd o=o and student.sno=sno1 and student.sno=sno2group by student.sno,sname存儲過程的執(zhí)行測試結(jié)果:execute student_sc 20110000,201100033、創(chuàng)建帶輸出參數(shù)的存儲過程(1)創(chuàng)建一個名為course_average的存儲過程,可查詢某門課程考試的平均成績。平均成績可以輸出,以便進(jìn)一步調(diào)用。存儲過程的創(chuàng)建語句:if exists (select name from sysobjects where name=course_averageand type=p) begin print 已刪除!

7、drop procedure course_average endelseprint 不存在,可創(chuàng)建!gocreate procedure course_averagecname nvarchar(20),avg int outputasselect avg=avg(grade)from sc,coursewhere o=o and cname=cname group by o,cname存儲過程的執(zhí)行測試結(jié)果:declare ping intexec course_average 高數(shù),ping outputprint 該課程的平均分?jǐn)?shù)為:+cast(ping as nvarchar(20)

8、(2)創(chuàng)建一執(zhí)行該存儲過程的批處理,要求當(dāng)平均成績小于60時,顯示信息為:“XX課程的平均成績?yōu)椋篨X,其平均分未達(dá)60分”。超過60時,顯示信息為:“XX課程的平均成績?yōu)椋篨X”。批處理語句:declare avg int declare cname nvarchar(20) Exec course_average cname,avg out begin if avg 60 print cast(cname as varchar)+ 課程的平均成績?yōu)?cast(avg as varchar)+ ,其平均分未達(dá)到分. else print cast(cname as varchar)+ 課程的

9、平均成績?yōu)?cast(avg as varchar) end 執(zhí)行測試結(jié)果:declare avg int declare cname nvarchar(20) set cname=高數(shù) Exec course_average cname,avg out begin if avg 60 print cast(cname as varchar)+ 課程的平均成績?yōu)?cast(avg as varchar)+ ,其平均分未達(dá)到分. else print cast(cname as varchar)+ 課程的平均成績?yōu)?cast(avg as varchar) end 4、創(chuàng)建帶重編譯及加密選項(xiàng)的存

10、儲過程創(chuàng)建一個名為update_sc、并帶重編譯及加密選項(xiàng)的存儲過程,可更新指定學(xué)號、指定課程號的學(xué)生的課程成績。(學(xué)號、課程號由調(diào)用時輸入)存儲過程的創(chuàng)建語句:存儲過程的執(zhí)行測試結(jié)果:5、使用T-SQL語句管理和維護(hù)存儲過程(1)使用sp_helptext查看存儲過程student_sc的定義腳本。結(jié)果:exec sp_helptext student_sc(2)使用select語句查看student_sc存儲過程的定義腳本。結(jié)果:select * from sysobjects where name = student_sc (3)將存儲過程stu_pr改為查詢學(xué)號為2011001的學(xué)生的詳細(xì)資料。結(jié)果:alter procedure stu_prasselect *from student left outer join sc on (student.sno=sc.sno) left outer join course on (o=o)where sno=2011001(4)刪除存儲過程stu_pr。結(jié)果:drop proce

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論