儲存過程簡稱過程,procedure,是一種沒有返回值的函式
create procedure 過程名字([引數列表])
begin
過程體end
函式的檢視方式完全適用於過程:關鍵字換成procedure
檢視建立語句
show create procedure pro1;
呼叫過程(過程沒有返回值,select不能訪問)
過程有乙個專門的呼叫關鍵字:call
過程是不能修改的,只能先刪除後新增
drop procedure 過程名
函式的引數需要資料型別指定,過程比函式更嚴格
過程有自己的型別限定
in : 資料只是從外部傳入給內部使用(值傳遞),可以是數值,也可以是變數
out : 只允許過程內部使用(不用外部資料),給外部使用(引用傳遞:外部的資料先清空,才會進入到內部):(言外之意)只能是變數。
inout : 外部的可以在內部使用,內部修改亦可以給外部使用,只能是變數
使用語法:
create procedure 過程名(in 形參名字 資料型別,out 形參名字資料 型別,inout形參名字資料 型別)
呼叫:out 和 inout 傳入必須是變數,不能是數值
必須傳入變數
-- 設定變數
儲存過程對用變數的操作(返回)是滯後的,是在儲存過程結束的時候把內部的修改的值賦值給外部傳入的全域性變數。
測試傳入資料:1,2,3
-- 設定變數
set @int_1 := 1;
set @int_2 := 2;
set @int_3 := 3;
call pro2(@int_1,@int_2,@int_3);
1. 說明了區域性變數和全域性變數無關
2. 在儲存過程呼叫結束之後,系統把區域性變數賦值給全域性變數(只限out 和 inout兩種型別)
寫了這麼多,其實沒什麼用,主要解決了儲存過程沒有返回值的問題。做到了把內部的結果返回給外部使用
mysql 儲存過程筆記 mysql儲存過程筆記
儲存過程是一組完成特定功能的sql語句集合,已經被編譯好,可以直接拿來被執行,可以傳參 引數有三種型別,in out inout in型別的引數,可以在儲存過程的方法體裡面被呼叫,但是無法影響外部 out型別的引數,無法被內部呼叫,儲存過程出來的結果可以影響外部 inout型別的引數,可以被接收呼叫...
MySQL儲存過程筆記
1.建立儲存過程 create procedure 儲存過程名稱 引數列表 begin sql語句塊 end注意 在mysql客戶端定義儲存過程的時候使用delimiter命令來把語句定界符從 變為 當使用delimiter命令時,你應該避免使用反斜槓 字元,因為那是mysql的轉義字元。如 mys...
mysql學習筆記 儲存過程
sql view plain copy use test drop table if exists t8 create table t8 s1 int,primary key s1 drop procedure if exists handlerdemo delimiter create proce...