mysql儲存過程(1)

2021-09-09 06:39:43 字數 1872 閱讀 6790

1、in引數的理解

delimiter cre

atep

roce

dure

sele

ctus

er1(

inus

erid

int)

begi

nsel

ect∗

from

tuse

rwhe

reid

>us

erid

;end

create procedure selectuser1(in userid int) begin select * from t_user where id > userid; end

create

proc

edur

esel

ectu

ser1

(inu

seri

dint

)beg

inse

lect

∗fro

mtu​

serw

here

id>us

erid

;end

delimiter ;

set @userid = 3;

call atcrowdfunding.adduser(@userid); --內部不能改變userid的值,只是可以傳入作為引數使用

select @userid; --所以此處輸出還是3

2、out引數的理解

delimiter cre

atep

roce

dure

sele

ctus

er(o

utus

ersi

nt)b

egin

−−se

tuse

rs=1

;sel

ectu

sers

;sel

ectc

ount

(∗)i

ntou

sers

from

tuse

r;se

lect

user

s;en

dcreate procedure select_user(out users int) begin -- set users = 1; select users; select count(*) into users from t_user; select users; end

create

proc

edur

esel

ectu

​ser

(out

user

sint

)beg

in−−

setu

sers

=1;s

elec

tuse

rs;s

elec

tcou

nt(∗

)int

ouse

rsfr

omtu

​ser

;sel

ectu

sers

;end

delimiter ;

set @users = 3;

call atcrowdfunding.select_user(@users);–此處第乙個結果將輸出null,user是作為輸出引數,執行了select count(*) into users from t_user;才會有值

select @users; --users將會被改變

ps:set @users = 3 為使用者變數的定義,注意不要定義過多的使用者變數!

Mysql 儲存過程1

儲存過程的優勢 1,一般的sql命令在執行前需要解析 編譯前提準備過程,但是儲存 過程是事先完成了解析,編譯處理後儲存在資料庫的,執行時能減輕 資料庫負擔,提高執行效能。2,減輕網路負擔,之前的傳遞sql語句,變成現在的傳遞引數。3,防止對錶的直接訪問。4,可以減少大部分的程式 5,msyql5.0...

MySQL儲存過程 (1)

引數模式 in 該引數作為輸入,該引數呼叫傳入值 out 該引數作為輸出,該引數作為返回值 inout 該引數即可作為輸入,也可作為輸出,該引數即可呼叫傳入值,也可作為返回值 delimiter 設定結束標記,比如 delimiter 1 不帶引數儲存過程 delimiter create proc...

mysql高階 儲存過程 1

在一起的語言,叫做 過程 php中沒有過程,只有函式,準確的說.函式能起到過程的作用 過程 就是封裝語句,呼叫的時候,這些封裝體執行 函式是有返回值的過程,而過程沒有返回值的函式 過程 把若干條sql封裝起來,起個名字就是過程 儲存過程 把此過程存在資料庫中,叫做儲存過程 匿名過程 mysql 不支...