1. 程式人生 > >資料庫視訊總結(六)——儲存過程

資料庫視訊總結(六)——儲存過程

概述

概念:是一組為了完成特定功能的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.姓名