




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、數(shù)據(jù)庫原理與技術第二次試驗課程名稱:數(shù)據(jù)庫原理與技術實驗報告要求:1. 列出所有的SQL語句和源代碼;2. 程序要求有適當?shù)淖⑨專?. 對數(shù)據(jù)完整性約束實施要求給出相應的測試用例。4. 實驗報告提交電子檔。實驗內容:存儲過程與觸發(fā)器1. 編寫一段程序,將每種玩具的價格提高¥0.5,直到玩具的平均價格接近$24.5為止。此外,任何玩具的最大價格不應超過$53。在執(zhí)行語句前查詢:select * from Toys 結果如下執(zhí)行代碼如下: create procedure inprove_pri /*創(chuàng)建存儲過程*/asdeclare average money /*定義變量 */select a
2、verage=AVG(mToyRate) from Toys begin while average<24 /*為保證進行最后一次循環(huán)后的average<24.5*/ begin update Toys set mToyRate=mToyRate+0.5where mToyRate<53 /* 循環(huán)條件 */ select average=AVG(mToyRate) from Toysendendgo exec inprove_priselect * from Toys 運行結果: 再查詢avg(mToyRate) 代碼:select AVG(mToyRate) aaa fr
3、om Toys2. 創(chuàng)建一個稱為prcCharges的存儲過程,它返回某個定單號的裝運費用和包裝費用。 create procedure prcCharges /*創(chuàng)建存儲過程 */cOrderNo char(6), /*定義變量 */mShippingCharges money output,mGiftWrapCharges money outputasbegin select mShippingCharges=mShippingCharges, /* 從Orders表中賦值給變量*/ mGiftWrapCharges=mGiftWrapCharges from Orders where c
4、OrderNo=cOrderNo /* 賦值條件 */ endgo declare mShippingCharges money, mGiftWrapCharges money exec prcCharges '000001',mShippingCharges output, /* 執(zhí)行該存儲過程 */ mGiftWrapCharges outputprint '000001訂單的裝運費:'+convert(char(10),mShippingCharges) /*打印輸出 */print '000001訂單的包裝費:'+convert(char
5、(10),mGiftWrapCharges) 結果如下: 3. 創(chuàng)建一個稱為prcHandlingCharges的過程,它接收定單號并顯示經營費用。PrchandlingCharges過程應使用prcCharges過程來得到裝運費和禮品包裝費。提示:經營費用=裝運費+禮品包裝費代碼如下:看Orders表的000001號訂單 select * from Orders create procedure prcHandlingCharges /* 定義存儲過程 */cOrderNo char(6), /* 定義訂變量 */RunningExpenses money outputasbegin dec
6、lare mShippingCharges money, mGiftWrapCharges moneyexec prcCharges cOrderNo, /* 引用prcCharges過程 */ mShippingCharges output, mGiftWrapCharges outputset RunningExpenses=mShippingCharges+mGiftWrapChargesendgo declare RunningExpenses moneyexec prcHandlingCharges '000001',RunningExpenses output /*
7、執(zhí)行存儲過*/print '訂單號的經營費用:'+convert(char(10),RunningExpenses)查詢結果如下: 4. 表PickofMonth中保存的是某年(iYear)某月(siMonth)某種玩具(cToyId)的銷售總量(iTotalSold)。創(chuàng)建一個存儲過程prcGenPickofMonth,根據(jù)給定的年份和月份生成表PickofMonth中相應的數(shù)據(jù)。 CREATE PROCEDURE prcGenPickofMonth /*定義存儲過程*/year int, /*定義變量 */ month smallintasdeclare /*聲明 */so
8、ld INT, ID CHAR(6)SELECT ID = cToyId, sold = iTotalSold /*從PickOfMonth表中賦值給所定義的變量 */ FROM PickOfMonth where iYear=year and siMonth=month print CONVERT(VARCHAR(5), year)+'年'+CONVERT(VARCHAR(5), month) +'月的' print '玩具編號:' + CONVERT(VARCHAR(6), ID) /*打印輸出 */ print '銷售額:'
9、 + CONVERT(VARCHAR(10), sold)GOEXECUTE prcGenPickofMonth 2001, 1 /*執(zhí)行給定的日期 */輸出結果:檢驗語句:select * from PickOfMonth Where iYear=2001 and siMonth=15. 在OrderDetail上定義一個觸發(fā)器,當向OrderDetail表中新增一條記錄時,自動修改Toys表中玩具的庫存數(shù)量(siToyQoh)。 CREATE TRIGGER TrOrderDetail /*定義觸發(fā)器 */ ON OrderDetail FOR INSERT ASDECLAREToyId
10、CHAR(6), /* 定義變量*/ToyQoh SMALLINT,Qty SMALLINT SELECT ToyId = cToyId, Qty = siQty FROM INSERTED SELECT ToyQoh = siToyQoh /*給變量賦值 */FROM Toys WHERE cToyId = ToyId /*賦值條件 */BEGIN UPDATE Toys /* 更新Toys表*/ SET siToyQoh = ToyQoh-Qty WHERE cToyId = ToyIdEND結果: 插入前查詢:執(zhí)行插入語句檢查:insert into Orders values('
11、;000012','05/12/2001','000002','000002','01',6,1.2500,'Y',62.2200,'05/23/2001')insert into OrderDetail values('000012','000007',2,'N',NULL,NULL,29.5000)然后再查詢Toys表:6. 在OrderDetail上定義一個觸發(fā)器,如果購物者改變了定單的數(shù)量,玩具的成本也自動地改變。(提示:Toy cost = Quantity * Toy Rate) 創(chuàng)建觸發(fā)器代碼如下:create trigger CheckToyCost on OrderDetail for update /*創(chuàng)建觸發(fā)器 */asif update(siQty) /* 觸發(fā)條件*/begin update OrderDetail /*更新表 */ set mToyCost=siQty*mToyRate from OrderDetail,Toyswhere OrderDetail.cToyId = Toys.cToyId end檢驗:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年中國游戲市場變現(xiàn)報告
- 2025年高中英語考試必考:十類詞性分類及用法
- 2024-2025學年新教材高中英語 Unit 4 Natural Disasters Reading and Thinking教學實錄 新人教版必修第一冊
- 廣告行業(yè)數(shù)字化廣告投放與效果評估系統(tǒng)
- 2024年秋七年級歷史上冊 第13課 東漢的興亡教學實錄 新人教版
- 2023一年級數(shù)學下冊 五 加與減(二)第4課時 拔蘿卜教學實錄 北師大版
- 三農村基層組織參與公共服務方案
- 4說說我們的學校 (教學設計)2024-2025學年統(tǒng)編版道德與法治三年級上冊
- 13 萬里一線牽2023-2024學年三年級下冊道德與法治同步教學設計(統(tǒng)編版)
- DB3709-T 013-2022 公路工程煤矸石路基施工技術規(guī)范
- 成人呼吸支持治療器械相關壓力性損傷理論考核試題
- 《客艙設備與服務》課件-1.客艙乘務員
- 100以內進退位加減法口算題每天60道
- 小兒推拿健康檔案表
- 2024年南京城市職業(yè)學院單招職業(yè)技能測試題庫及答案解析
- (正式版)HGT 20593-2024 鋼制化工設備焊接與檢驗工程技術規(guī)范
- 部編版小學語文二年級下冊第三單元集體備課教材分析
- GIS在公共衛(wèi)生與疫情防控中的應用
- 部編版小學道德與法治三年級下冊課堂同步試題全冊(含答案)
- 【電動汽車充電樁控制系統(tǒng)設計10000字(論文)】
- 廣告牌制作安裝應急預案
評論
0/150
提交評論