數(shù)據(jù)庫作業(yè)儲(chǔ)存過程_第1頁
數(shù)據(jù)庫作業(yè)儲(chǔ)存過程_第2頁
數(shù)據(jù)庫作業(yè)儲(chǔ)存過程_第3頁
數(shù)據(jù)庫作業(yè)儲(chǔ)存過程_第4頁
免費(fèi)預(yù)覽已結(jié)束,剩余1頁可下載查看

下載本文檔

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

文檔簡介

1、實(shí)驗(yàn)11存儲(chǔ)過程1 .實(shí)驗(yàn)?zāi)康?1) 掌握使用SQL Server管理平臺(tái)和Transact-SQL語句創(chuàng)建存儲(chǔ)過程、執(zhí)行存儲(chǔ)過程、修改存儲(chǔ)過程、刪除存儲(chǔ)過程的用法。(2) 理解使用SQL Server管理平臺(tái)和Transact-SQL語句查看存儲(chǔ)過程定義、重命名存儲(chǔ)過程的用法。2 .實(shí)驗(yàn)內(nèi)容及步驟請先附加studentsdb數(shù)據(jù)庫,然后完成以下實(shí)驗(yàn)。(1) CREATE PROCEDURE st_gAS BEGINSELECT x.學(xué)號(hào),x.姓名,y.分?jǐn)?shù)FROM student_info x ,grade y Where x. 學(xué)號(hào)二y.學(xué)號(hào) END該程序完成的功能是 創(chuàng)建一個(gè)存儲(chǔ)過程,儲(chǔ)

2、存分 數(shù)。(2) 設(shè)計(jì)一個(gè)存儲(chǔ)過程proc_grade完成這樣的功能:查詢grade表中課程編號(hào)為k002'的學(xué)號(hào)、分?jǐn)?shù)信息,并使存儲(chǔ)過程不能使用sp_helptext查看(即 加密),請編寫程序?qū)崿F(xiàn)。答:create procedure proc_grade with encryption as beginselect grade .學(xué)號(hào),grade .分?jǐn)?shù)from gradewhere grade .課程編號(hào)='k002'end(3) 修改存儲(chǔ)過程proc_grade ,查詢grade表中課程編號(hào)為k001'的學(xué)號(hào)、分?jǐn)?shù)信息,去掉proc_grade加密性,

3、使其在運(yùn)行時(shí)重新編譯。答:alter procedure proc_gradeasbeginselect grade . 學(xué)號(hào) , grade . 分?jǐn)?shù)from gradewhere grade . 課程編號(hào)='k001'end(4) 4)在 student_info 表中增加一列名為“手機(jī)號(hào)”, 數(shù)據(jù)類型 char(11) 。 設(shè)計(jì)一個(gè)存儲(chǔ)過程proc_tel , 查詢 student_info 表中末尾數(shù)字為5的手機(jī)號(hào)碼。答: alter table student_infoadd 手機(jī)號(hào) char ( 11)create procedure proc_telasbegin

4、insert into student_info ( 學(xué)號(hào) , 手機(jī)號(hào) )values ( , )select 手機(jī)號(hào)from student_infowhere 手機(jī)號(hào) like '%5'endexec proc_tel(5) 設(shè)計(jì)一個(gè)存儲(chǔ)過程proc_avg ,輸出grade表中每個(gè)學(xué)生的平均成績。答: create procedure proc_avgasbeginselect AVG( grade . 分?jǐn)?shù) ) as 平均成績, grade . 學(xué)號(hào)from gradegroup by grade . 學(xué)號(hào)endexec proc_avg(6) 6)設(shè)計(jì)一個(gè)存儲(chǔ)過程pr

5、oc_list ,查詢 grade 表中指定課程( 參數(shù) cidchar(4) 的成績排名前3 的學(xué)生成績信息。編寫程序并調(diào)用該存儲(chǔ)過程。答: create procedure proc_listcid char(4)asbeginselect top 3 *from gradewhere grade . 課程編號(hào)=cidorder by grade . 分?jǐn)?shù) descendexec proc_list7) 設(shè)計(jì)一個(gè)存儲(chǔ)過程proc_stu ,查詢某門課程某個(gè)分?jǐn)?shù)段的學(xué)生信息,顯示學(xué)號(hào)、姓名、分?jǐn)?shù),要求課程名稱和分?jǐn)?shù)段均為輸入?yún)?shù),請編寫程序并調(diào)用該存儲(chǔ)過程。create procedure

6、proc_stu sclass nchar ( 10), score decimal (4, 1), score2 decimal ( 4, 1)asbeginselect a . 學(xué)號(hào) , a. 姓名 , b. 分?jǐn)?shù)from student_info a inner join grade b on a . 學(xué)號(hào) =b. 學(xué)號(hào) inner join curriculum c on b .課程編號(hào)=c. 課程編號(hào)where c . 課程名稱=sclass and b . 分?jǐn)?shù)>score and b . 分?jǐn)?shù)<score2 endexec proc_stu ' ' ,

7、 , ( 自己輸入?yún)?shù))8) 設(shè)計(jì)一個(gè)存儲(chǔ)過程proc_course , 查詢某門課程的平均成績并將其輸出給用戶。課程名稱為輸入?yún)?shù),平均成績?yōu)檩敵鰠?shù),編寫程序并調(diào)用該存儲(chǔ)過程。答: create procedure proc_course cclass nchar ( 10),avgscore decimal ( 4, 1) outputasbeginselect avgscore =avg( grade . 分?jǐn)?shù) )from grade inner join curriculum on grade . 課程編號(hào)=curriculum . 課程編號(hào)where curriculum . 課程

8、名稱=cclassenddeclare cclass nchar ( 10) exec proc_course ' ' , cclass outputselect cclass 平均成績9) 設(shè)計(jì)一個(gè)存儲(chǔ)過程,用于修改指定學(xué)生( 參數(shù) sid char(4) 指定課程(參數(shù)為 cid char(4) 的分?jǐn)?shù) (score decimal(3,1) ,并輸出該生的平均成績avgs),要求輸出格式為: “該生的最新平均成績?yōu)椋?”。編寫并調(diào)用該存儲(chǔ)過程(修改學(xué)號(hào)0002'的學(xué)生的彳讀課程K003'的成績改為96)。答:create procedure proc_al

9、tersid char(4),cid char (4),score decimal (3, 1), avgs decimal ( 3, 1) outputas beginupdate gradeset grade . 分?jǐn)?shù) =scorewhere grade . 學(xué)號(hào) =sid and grade . 課程編號(hào)=cidselect avgs=avg(grade . 分?jǐn)?shù) ) from gradewhere grade . 學(xué)號(hào) =sid enddeclare avgs decimal ( 3, 1)exec proc_alter '0002' , 'K003'

10、, 96, avgs outputselect avgs 平均成績(10)設(shè)計(jì)一個(gè)存儲(chǔ)過程proc_credit 完成這樣的功能:輸入學(xué)號(hào)sid、 課程名稱52m#數(shù)值,將查詢curriculum、grade表,并從輸出參數(shù) scoecredit 獲取該學(xué)生該課程的成績和學(xué)分,如果分?jǐn)?shù)大于等于60,則返回對(duì)應(yīng)課程的學(xué)分,否則返回學(xué)分值0,請編寫程序并調(diào)用該存儲(chǔ)過程。答:create procedure proc_creditsid char(4),cnamenchar ( 10),credit int output , score decimal (4, 1) output asbeginselect score=grade . 分?jǐn)?shù) , credit =curriculum . 學(xué)分from grade inner join curriculum on grade . 課程編號(hào)=curriculum . 課程編號(hào)where grade . 學(xué)號(hào) =sid and curriculum . 課程名稱=cnameend declare credit int , score decimal ( 4, 1 ) exec proc_credit ' ' , ' ' ,credit output

溫馨提示

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

評(píng)論

0/150

提交評(píng)論