儲存過程(stored procedure)是在大型資料庫系統中,一組為了完成特定功能的sql語句集,儲存在資料庫中,經過第一次編譯後再次呼叫不需要再次編譯,使用者通過指定儲存過程的名字並給出引數(如果該儲存過程帶有引數)來執行它。儲存過程是資料庫中的乙個重要物件(針對sql變成而言)。
相同點:
1、都是為了可重複的執行運算元據庫的sql語句的集合。
2、一次編譯,後續執行。
不同點:
1、識別符號:函式(function)、儲存過程(procedure)
2、函式必須有返回值,儲存過程沒有返回值。即函式可用於select語句,儲存過程則不行。
當過程體中只有一條語句時,begin and 可以省略
delimiter $$
create procedure 過程名字(引數列表)
begin
過程體end$$
案例:求1~100的和
方式一:通過檢視procedure狀態,檢視所有儲存過程
方式二:檢視儲存過程建立語句
show create procedure 儲存過程名;
儲存過程也允許提供引數(形參和實參),儲存過程的引數也和函式一樣,需要指定其型別。
但是儲存過程對引數還有額外的要求,它還有自己的乙個分類:in、out、inout
call 儲存過程名(實參列表);
1、in型別:表示引數從外部傳入到裡面使用(過程內部使用),可以是直接資料,也可以是儲存資料的變數。
2、out型別:表示引數是從儲存過程裡面把資料儲存到變數中,交給外部使用,故傳入的必須是變數。如果說傳入的out變數本身在外部有資料,那馬在進入過程之後,第一件事,就是被清空。設為null
3、inout型別:資料可以從外部傳入到內部使用,同時內部操作之後,又會將資料返回給外部。
結果分析:
(1)執行過程分析,out傳入變化
(2)執行完過程之後,再次檢視引數變化
drop procedure 儲存過程名;
mysql 儲存過程基礎 MySQL基礎 儲存過程
儲存過程 定義 將一批為了完成特定功能的sql語句集,根據傳入的引數 也可沒有 呼叫,完成單個sql語句更複雜的功能 儲存過程思想很簡單,就是sql語句層面上的 封裝和重用 優點 1 可封裝,並隱藏複雜的業務邏輯 2 可回傳值,且可接受引數 缺點 因支援的程式語言不通,效能調校和撰寫,受限於各種資料...
mysql儲存過程基礎
delimiter create procedure ss in x1 int begin insert into pro id values x1 end delimiter call ss 1004 檢視 方法一 直接查詢,比較實用,檢視當前自定義的儲存過程 select specific na...
Mysql系列 儲存過程 重點游標
儲存過程的簡單認識,當乙個事務涉及到多個sql語句時或者涉及到對多個表的操作時就要考慮用儲存過程 當在乙個事務的完成需要很複雜的商業邏輯時 比如,對多個資料的操作,對 多個狀態的判斷更改等 要考慮 還有就是比較複雜的統計和彙總也要考慮,但是過多的使用儲存過程會降低系統的移植性。帶輸入引數的儲存過程,...