西工大第四次數據庫實驗報告_第1頁
西工大第四次數據庫實驗報告_第2頁
西工大第四次數據庫實驗報告_第3頁
西工大第四次數據庫實驗報告_第4頁
西工大第四次數據庫實驗報告_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、數據庫系統(tǒng)概論實驗報告題目:實驗四 存儲過程/觸發(fā)器/ODBC數據庫編程姓名 班級學號 日期劉凱1003120120123026062014.111、 實驗內容、步驟以及結果1. 使用系統(tǒng)存儲過程(sp_rename)將視圖“V_SPJ”更名為“V_SPJ_三建”。sp_rename 'V_SPJ','V_SPJ_三建'2. 存儲過程的創(chuàng)建與使用:(1) 使用SPJ數據庫中的S表、P表、J表、SPJ表,創(chuàng)建一個帶參數的存儲過程jsearch。該存儲過程的作用是:當任意輸入一個工程代號時,將返回供應該工程零件的供應商的名稱(SNAME)和零件的

2、名稱(PNAME)以及工程的名稱(JNAME)。執(zhí)行jsearch存儲過程,查詢“J1”對應的信息。CREATE PROCEDURE jsearch(SPJ_JNO CHAR(10)AS BEGIN SELECT SNAME,PNAME,JNAME FROM SPJ,S,P,JWHERE SPJ_JNO=SPJ.JNO AND SPJ.JNO=J.JNO AND SPJ.PNO=P.PNO AND SPJ.SNO=S.SNO END;(2) 創(chuàng)建一個帶有輸出游標參數的存儲過程jsearch2,功能同1),執(zhí)行jsearch2,查詢“J1”對應信息,并且將得到的結果用print語句輸出到控制臺。

3、CREATE PROCEDURE jsearch2(SPJ_JNO CHAR(10),SPJ_CURSOR CURSOR VARYING OUTPUT) AS SET SPJ_CURSOR = CURSORFORSELECT S.SNAME,P.PNAME,J.JNAME FROM SPJ,S,P,JWHERE SPJ_JNO=SPJ.JNO AND SPJ.JNO=J.JNO AND SPJ.PNO=P.PNO AND SPJ.SNO=S.SNOOPEN SPJ_cursorjsearch 'J1'(3) 使用SPJ數據庫中的S表,為其創(chuàng)建一個加密的存儲過程jmsearch。

4、該存儲過程的作用是:當執(zhí)行該存儲過程時,將返回北京供應商的所有信息。CREATE PROCEDURE jmsearchWITH ENCRYPTIONAS BEGIN SELECT S.SNAME,S.SNO,S.STATUS FROM SWHERE S.CITY='北京' END;BEGIN DECLARE SNAME char(10) DECLARE PNAME char(10) DECLARE JNAME char(10) DECLARE SPJ_cursor CURSOR EXEC jsearch2 'J1',SPJ_cursor OUTPUT FETCH

5、 NEXT FROM SPJ_cursor INTO SNAME,PNAME,JNAME WHILE (FETCH_STATUS = 0) BEGIN PRINT(SNAME+PNAME+JNAME) FETCH NEXT FROM SPJ_cursor INTO SNAME,PNAME,JNAME END CLOSE SPJ_cursor DEALLOCATE SPJ_cursor ENDGO(4) 使用系統(tǒng)存儲過程sp_helptext查看存儲過程jsearch, jmsearch的文本信息。exec sp_helptext jsearchEXEC sp_helptext jmsearch

6、(5) 執(zhí)行jmsearch存儲過程,查看北京供應商的情況。EXEC jmsearch(6) 刪除jmsearch存儲過程。 DROP procedure jmsearch 3. 觸發(fā)器的創(chuàng)建與使用:(1) 在student數據庫中建立一個名為insert_s的INSERT觸發(fā)器,存儲在S表中。該觸發(fā)器的作用是:當用戶向S表中插入記錄時,如果插入的sdept值為CS ,IS ,MA以外的值,則提示用戶“不能插入記錄這樣的紀錄”,否則提示“記錄插入成功”。觸發(fā)器創(chuàng)建成功之后,向S表插入記錄,驗證觸發(fā)器是否正常工作。USE StudentGOCREATE TRIGGER insert_sON SF

7、OR INSERT AS IF (SELECT Sdept FROM INSERTED)IN ('CS','IS','MA')BEGINPRINT'記錄數據成功'ENDELSE PRINT'不能插入記錄這樣的數據'USE StudentGOINSERT INTO S VALUES ('2012302607','葛興','男','1993/01/01','IS')(2) 為student數據庫中的S表創(chuàng)建一個名為dele_s1的DELET

8、E觸發(fā)器,該觸發(fā)器的作用是禁止刪除S表中的記錄。觸發(fā)器創(chuàng)建成功之后,刪除S表中的記錄,驗證觸發(fā)器是否正常工作。USE StudentGOCREATE TRIGGER dele_s1ON SINSTEAD OF DELETEAS PRINT'不能刪除'USE StudentGODELETE FROM S WHERE S.sno='2012302607'SELECT * FROM SDROP TRIGGER dele_s1;(3) 為student數據庫中的S表創(chuàng)建一個名為dele_s2的DELETE觸發(fā)器,該觸發(fā)器的作用是刪除S表中的記錄時刪除SC表中該學生的選課

9、紀錄。觸發(fā)器創(chuàng)建成功之后,刪除S表中的記錄刪除S表中的記錄,驗證觸發(fā)器是否正常工作(SC表中的數據被正常刪除)。USE StudentGOCREATE TRIGGER dele_s2ON SFOR DELETEAS DELETE FROM SC WHERE SC.sno IN(SELECT sno FROM DELETED)DELETE FROM S WHERE S.sno='95001'SELECT * FROM SC(4) 為student數據庫中的S表創(chuàng)建一個名為update_s的UPDATE觸發(fā)器,該觸發(fā)器的作用是禁止更新S表中“sdept”字段的內容。觸發(fā)器創(chuàng)建成功之

10、后,更新S表中“sdept”字段的內容,驗證觸發(fā)器是否正常工作。USE StudentGOCREATE TRIGGER update_sON SINSTEAD OF UPDATE AS PRINT'不能更新'USE StudentGOUPDATE S SET Sdept='MA' WHERE S.sno='2012302607'(5) 禁用update_s觸發(fā)器。禁用之后,更新S表中的“sdept”字段的內容,驗證觸發(fā)器是否還繼續(xù)正常工作。USE StudentGOALTER TABLE S DISABLE TRIGGER update_sUSE

11、 StudentGOUPDATE S SET Sdept='MA' WHERE S.sno='2012302607'(6) 刪除update_s觸發(fā)器。USE StudentGODROP TRIGGER update_s4. ODBC配置以及程序調試:(1) 配置一個ODBC數據源,要求數據源名稱:student,其中包含s(學生信息)表。(2) 閱讀并運行實驗給出的程序,理解ODBC編程,要求簡單寫出自己對這段程序的理解或者流程圖,并且請給出程序運行結果示例圖。二、實驗中出現的問題以及解決方案(對于未解決問題請將問題列出來)本次試驗進行了觸發(fā)器、存儲過程以及數據庫等應用技

溫馨提示

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

評論

0/150

提交評論