什麼是儲存過程?
是一組被編譯在一起的t-sql語句的集合,它們被集合在一起以完成乙個特定的任務。
儲存過程的分類
系統儲存過程
擴充套件儲存過程(提供從sql server到外部程式的介面,以便進行各種維護活動)
使用者自定義的儲存過程
儲存過程的作用
1.模組化程式設計
建立乙個儲存過程存放在資料庫中後,就可以被其他程式反覆使用。
2.執行速度快
儲存過程第一次被執行後,就駐留在記憶體中。以後執行就省去了重新分析、優化、編譯的過程。
3.減少網路通訊量
有了儲存過程後,在網路上只要一條語句就能執行乙個儲存過程。
4.保證系統安全性
通過隔離和加密的方法提高了資料庫的安全性,通過授權可以讓使用者只能執行儲存過程而不能直接訪問數
據庫物件。
建立儲存過程
create proc[edure] 儲存過程名
[ [ = default ] [output]
] [ , … n ]
as
sql語句 [ … n ]
執行儲存過程
[ exec [ ute ] ] 儲存過程名 [實參 [, output] [, … n] ]
好了,下面開始以我們的實驗為例來看看儲存過程了:
實驗內容:
1, 在圖書管理資料庫中建立乙個儲存過程,在使用者借書之前,判斷該使用者能否借書。並進行測試,同時給出測試**。
2. 在圖書管理資料庫中建立乙個使用者借書的儲存過程,並測試。同時給出測試**。
3, 在圖書管理資料庫中建立乙個使用者還書的儲存過程,並測試。同時給出測試**。
4, 在圖書管理資料庫中建立乙個刪除指定使用者的儲存過程並測試。同時給出測試**。
/*2、在圖書管理資料庫中建立乙個使用者借書的儲存過程,並測試。同時給出測試**。*/
create proc loan_borrow
@借閱證號 varchar(50),@書號 varchar(50)
asinsert into loan(借閱證號,書號,借閱日期)values(@借閱證號,@書號,getdate())
------------執行此儲存過程---------
exec loan_borrow @借閱證號='y00001',@書號='a04500011'
/*3、在圖書管理資料庫中建立乙個使用者還書的儲存過程,並測試。同時給出測試**。*/
create proc return_book
@借閱證號 varchar(50),@書號 varchar(50)
asdelete from loan where 借閱證號 = @借閱證號 and 書號 = @書號
------------執行此儲存過程---------
exec return_book @借閱證號='y00001',@書號='a04500047'
/*在圖書管理資料庫中建立乙個刪除指定使用者的儲存過程並測試。同時給出測試***/
create proc option_delete
@借閱證號 varchar(50)
asdelete from loan where 借閱證號 = @借閱證號
delete from loanlist where 借閱證號 = @借閱證號
delete from money where 借閱證號 = @借閱證號
delete from reservation where 借閱證號 = @借閱證號
delete from users where 借閱證號 = @借閱證號
------------執行此儲存過程---------
exec option_delete 'g01000'
寫完之後總感覺有很多要改的地方,比如第一題的判斷,我是通過return乙個數值,然後使用case語句列印輸出的,但這樣彷彿和真實的圖書館儲存過程有點區別,後來和室友討論之後,感覺還是使用return語句,直接在判斷之後直接print列印出結果,這樣的話在執行儲存過程的時候只需要輸入借閱證號和書號即可,不需要再麻煩的使用case語句了.其他的目前還沒有發現有什麼別的問題,如果有人看到了我的問題,歡迎指出.
資料庫儲存過程的小實驗
實驗4 1 儲存過程 一 實驗目的 1 理解儲存過程的概念 了解儲存過程的型別 2 掌握建立儲存過程的方法 3 掌握執行儲存過程的方法 4 了解檢視 修改 刪除儲存過程的方法 二 實驗內容 1 使用不帶引數的儲存過程 1 建立乙個儲存過程my proc,查詢 學生表 中所有計算機系女生的學號 姓名 ...
資料庫 實驗六 游標 儲存過程的建立和使用
1 游標操作 在選修資料庫中,以student sno,sname,s sage,sdept course cno,cname,cpno,credit sc sno,cno,grade 表為基礎完成下列游標操作。1 在student表中定義乙個包含sno,sname,s sage,sdept的滾動游...
資料庫實驗六
實驗六 資料庫程式設計 一 實驗目的 1.掌握觸發器的概念,了解觸發器的型別 2.掌握儲存過程的建立與執行方法 二 實驗內容 建立觸發器trigger delete,實現以下功能 當訂單表的資料被刪除時,顯示提示資訊 訂單表記錄被修改了 create trigger trigger delete o...