資料庫視訊總結(六)——儲存過程
阿新 • • 發佈:2018-11-10
概述
概念:是一組為了完成特定功能的SQL語句集,經編譯後儲存在資料庫中,儲存過程可包含程式流,邏輯以及對資料庫的查詢。
為什麼使用:
1、儲存過程與其他應用程式共享應用程式邏輯
2、具有安全性和所有權連線,以及可以附加到他們的證書
3、提供安全機制
4、允許模組化程式設計
5、可以減少網路通訊流量
種類:
1、使用者自定義儲存過程
2、系統儲存過程、
3、擴充套件儲存過程
建立儲存過程
語法格式:
CREATE PROC 儲存過程名稱
引數
Varying=default
With
Recompile
As
Sql_statement[…n]
舉例:建立儲存過程檢視所有男同學的資訊
create procedure proc_student
@sex varchar(10)
as
select * from 學生資訊
where 性別[email protected]sex
exec proc_student @sex='男'
使用帶預設值的引數
create proc p_employee
@departmentid varchar(10),
@zhiwei varchar(20)=’職員’
as
select A.員工姓名,a.所任職位,a. 聯絡電話,b.部門名稱
from 員工資訊 A ,部門資訊 B
on a.所在部門編號=b.部門編號 and b.部門編號=departmentid and a.所任職位[email protected]
修改儲存過程
語法格式:
ALTER PROCEDURE procedure_name
引數
VARYING=default
With
刪除儲存過程
語法格式:
DROP PROCEDUER
設計儲存過程的規則
規則:
1、可以引用在同一儲存過程中建立的物件,只要引用時已經建立了該物件即可
2、可以在儲存過程內引用臨時表
3、如果執行的儲存過程將呼叫另一個儲存過程,則被=呼叫的儲存過程可以訪問由第一個儲存過程建立的所有物件,包括臨時表在內
4、如果執行遠端SQL例項進行更遠的遠端儲存過程,則不但能回滾這些更改。遠端儲存過程不參與事務處理
5、儲存過程中的引數的最大數目為2100
6、儲存過程中的區域性變數的最大數目僅受可用記憶體的限制
7、根據可用記憶體的不同,儲存過程最大可達125mb
臨時儲存過程:
舉例:
create procedure #get_info
as
select a.成績,b.姓名 from 成績資訊 A,學生資訊 b where a.學生編號=b.學號
order by b.姓名