《數(shù)據(jù)庫原理與應(yīng)用》實驗報告三及答案.doc
《《數(shù)據(jù)庫原理與應(yīng)用》實驗報告三及答案.doc》由會員分享,可在線閱讀,更多相關(guān)《《數(shù)據(jù)庫原理與應(yīng)用》實驗報告三及答案.doc(4頁珍藏版)》請在裝配圖網(wǎng)上搜索。
廣東金融學(xué)院實驗報告 課程名稱:數(shù)據(jù)庫原理與應(yīng)用 實驗編號 及實驗名稱 實驗三 數(shù)據(jù)庫高級應(yīng)用實驗 系 別 計科系 姓 名 學(xué) 號 班 級 實驗地點(diǎn) 新電1101 實驗日期 2014 年05 月14 日 實驗時數(shù) 8 指導(dǎo)教師 同組其他成員 無 成 績 一、實驗?zāi)康募耙? 1、 掌握SQL Server存儲過程的定義和使用。 2、 掌握SQL Server觸發(fā)器的定義和使用。 二、實驗環(huán)境及相關(guān)情況(包含使用軟件、實驗設(shè)備、主要儀器及材料等) 1、計算機(jī)操作系統(tǒng)要求在windows XP以上。 2、并要求SQL Server 軟件2000以后版本。 三、實驗內(nèi)容及要求 利用實驗指導(dǎo)書中的關(guān)系數(shù)據(jù)庫完成下面題目: 1、說明下面代碼段的功能 SELECT tname as ‘姓名’,tSex as ‘性別’, case trank when ‘教授’ then ‘高級職稱’ when ‘講師’ then ‘中級職稱’ else ‘初級職稱’ end from teacher 答:在教師表中選取姓名和性別兩列,并給每個教師分等級; 2、完成下面代碼的書寫 計算student_course表的平時分?jǐn)?shù)列的平均值。如果小于80,則分?jǐn)?shù)增加其值的5%;如果分?jǐn)?shù)的最高值超過95,則終止該操作。在以下代碼劃線處填入適當(dāng)?shù)膬?nèi)容以完成上述功能。 WHILE (SELECT____avg________(NormalMark) FROM student_course)<80 BEGIN if (SELECT MAX(NormalMark) FROM student_course)>____95_____ BREAK ELSE ___ UPDATE student_course SET NormalMark = NormalMark *1.05 END 注意:實驗前要先給所有同學(xué)的NormalMark賦一個初值,比如50。 3、根據(jù)要求完成下列題目 1) 編寫一個觸發(fā)器:在添加期末成績信息時,利用平時成績、其中成績和期末成績來計算成績總評。如果沒有期中成績,則平時和期末成績比重為2:8,如果有期中成績,則平時、期中、期末三者比重為2:2:6。 答:在student_course表中添加一列summark期末成績,而exammark作為期中成績,mark作為期末成績; create trigger get_summark2 on student_course for insert as Declare @sno varchar(10),@ccno char(10) Declare @nmark int Declare @emark int Declare @fmark int Select @nmark=NormalMark,@emark=exammark,@fmark=mark,@sno=sno,@ccno=ccno from student_course if not exists(select exammark from student_course where @sno=sNO and @ccno=ccNO ) begin update student_course set sumMark = convert(int,(@nmark * 0.2) + (@fmark * 0.8)) end else begin update student_course set sumMark = convert(int,(@nmark * 0.2) + (@eMark * 0.2)+ (@fmark * 0.6)) end 2)創(chuàng)建一個帶輸入?yún)?shù)和輸出參數(shù)的存儲過程,要求實現(xiàn)如下功能:輸入學(xué)生學(xué)號,然后輸出學(xué)生的選課門數(shù)、平均分以及所選學(xué)分。 答: create procedure c ( @sno char(10), @cnocount int output, @avgmark float output, @sumcredit int output) As begin select @cnocount=count(*),@avgmark=avg(mark),@sumcredit=sum(credit) From student_course sc,course_class cc ,student s where sc.sno=s.sno and cc.ccno=sc.ccno group by s.sNO,sname end 3)調(diào)用2小題中的存儲過程,并分別獲得輸出相關(guān)信息。 答: Declare @ccount int Declare @smark float Declare @scredit int Exec c 081220101 , @ccount output, @smark output, @scredit output Select 081220101 as 學(xué)生號, @ccount as 選課門數(shù), @smark as 平均分, @scredit as 所選學(xué)分 結(jié)果: 警告: 聚合或其他SET 操作消除了Null 值。 學(xué)生號 選課門數(shù) 平均分 所選學(xué)分 --------- ----------- ---------------------- ----------- 081220101 6 69 22 (1 行受影響) 4、思考題 1)存儲過程和觸發(fā)器的異同點(diǎn)? 答: 觸發(fā)器與存儲過程的區(qū)別: 觸發(fā)器與存儲過程的主要區(qū)別在于觸發(fā)器的運(yùn)行方式。存儲過程必須有用戶、應(yīng)用程序或者觸發(fā)器來顯示的調(diào)用并執(zhí)行,而觸發(fā)器是當(dāng)特定時間出現(xiàn)的時候,自動執(zhí)行或者激活的,與連接用數(shù)據(jù)庫中的用戶、或者應(yīng)用程序無關(guān)。當(dāng)一行被插入、更新或者刪除時觸發(fā)器才執(zhí)行,同時還取決于觸發(fā)器是怎樣創(chuàng)建的,當(dāng)UPDATE發(fā)生時使用一個更新觸發(fā)器,當(dāng)INSERT發(fā)生時使用一個插入觸發(fā)器,當(dāng)DELETE發(fā)生時使用一個刪除觸發(fā)器。 觸發(fā)器與存儲過程的相同: 觸發(fā)器與存儲過程非常相似,都是SQL語句集 五、實驗總結(jié)(包括心得體會、問題回答及實驗改進(jìn)意見)通過本次試驗,基本掌握SQL Server存儲過程的定義和使用,也掌握SQL Server觸發(fā)器的定義和使用。 六、教師評語 1、完成所有的實驗內(nèi)容,實驗步驟和實驗結(jié)果基本正確。 2、至少完成主要的實驗內(nèi)容,實驗步驟和實驗結(jié)果基本正確。 3、僅完成部分的實驗內(nèi)容,實驗步驟和結(jié)果基本正確。 4、雖然完成了主要實驗內(nèi)容,但是實驗步驟和結(jié)果存在多處重大錯誤。 5、未能很好地完成規(guī)定的實驗內(nèi)容,且實驗步驟和結(jié)果基本不正確。 6、其它: 評定等級:優(yōu)秀 良好 中等 及格 不及格 教師簽名: 年 月 日 第 3 頁 共2 頁- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 數(shù)據(jù)庫原理與應(yīng)用 數(shù)據(jù)庫 原理 應(yīng)用 實驗 報告 答案
鏈接地址:http://italysoccerbets.com/p-9076596.html