資料庫原理及其應用(SQL server2012)習題詳解-習題8

初心cc發表於2018-11-23

習題8

8-1.名詞解釋:
儲存過程:儲存過程是Transact-SQL語句和流程控制語句的編譯集合,以一個名稱儲存並作為一個單元處理。儲存過程儲存在資料庫內,可由應用程式通過一個呼叫執行,而且允許使用者宣告變數,有條件執行並且具有強大的程式設計功能。
觸發器:一種對錶進行插入,更新,刪除的時候會自動執行的特殊儲存過程。
使用者定義函式:像系統內建函式一樣,可以接收引數,執行復雜的操作並將操作結果以值得形式返回,也可以將結果用表格變數返回。

8-2.簡述儲存過程與觸發器的區別。

答:觸發器是一種特殊型別的儲存過程,觸發器和儲存過程一樣都是SQL語句集。儲存過程執行後駐留在計算機的高速緩衝區中,利用儲存過程可以提高程式的效率,但儲存過程只能通過呼叫來執行,可以有返回的狀態值,儲存過程可以在程式端呼叫執行。觸發器是不可以在程式端呼叫的,它是SQL伺服器端自動執行。觸發器與儲存過程的主要區別在於觸發器的執行方式。儲存過程必須有使用者、應用程式或者觸發器來顯示的呼叫並執行,而觸發器是當特定時間出現的時候,自動執行或者啟用的,與連線用資料庫中的使用者、或者應用程式無關。當一行被插入、更新或者刪除時觸發器才執行,同時還取決於觸發器是怎樣建立的。

8-3.AFTER觸發器和INSTEAD OF觸發器有什麼不同?

答:AFTER觸發器要求只有執行某一操作INSERT、UPDATE、DELETE之後觸發器才被觸發,且只能定義在表上,也可以針對表的同一操作定義多個觸發器以及它們觸發的順序。而INSTEAD OF觸發器表示並不執行其定義的操作(INSERT、UPDATE、DELETE)而僅是執行觸發器本身。既可以在表上定義INSTEAD OF觸發器,也可以在檢視上定義,但對同一操作只能定義一個INSTEAD OF觸發器。

8-4.在教學管理資料庫中,建立一個名為STU_AGE的儲存過程,該儲存過程根據輸入的學號,輸出該學生的出生年份。
在這裡插入圖片描述
8-5.在教學管理資料庫中,建立一個名為GRADE_INFO的儲存過程,其功能是查詢某門課程的所有學生成績。顯示欄位為:CNAME,SNO,SNAME,GRADE。
在這裡插入圖片描述

8-6.在教學管理資料庫中,建立一個INSERT觸發器TR_C_INSERT,當在C表中插入一條新記錄時,觸發該觸發器,並給出“你插入了一門新的課程!”的提示資訊。
在這裡插入圖片描述
8-7 在教學管理資料庫中,建立一個AFTER觸發器,要求實現以下功能:在SC表上建立一個插入、更新型別的觸發器TR_GRADE_CHECK,當在GRADE欄位中插入或修改成績後,觸發該觸發器,檢查分數是否在0~100之間。
在這裡插入圖片描述
8-8.在教學管理資料庫中,建立使用者定義函式C_MAX,根據輸入的課程名稱,輸出該門課程最高分數的同學學號。
在這裡插入圖片描述
8-9.在教學管理資料庫中,建立使用者定義函式SNO_INFO,根據輸入的課程名稱,輸出選修該門課程的學生學號、姓名、性別、系部、成績。
在這裡插入圖片描述

相關文章