/*
引數模式:
in:該引數作為輸入,該引數呼叫傳入值
out:該引數作為輸出,該引數作為返回值
inout:該引數即可作為輸入,也可作為輸出,該引數即可呼叫傳入值,也可作為返回值
delimiter:設定結束標記,比如 //、$、#
delimiter #
*/1、不帶引數儲存過程
delimiter //
create procedure mies()
begin
select * from student ;
end//
drop procedure mies();
call mies();
2、帶引數 in 儲存過程
delimiter //
/*傳入引數,設定引數型別*/
create procedure mies(in sid int)
begin
select * from student where sid=sno;
end//
drop procedure mies();
/*設定引數值*/
set @sid=20162010;
call mies(@sid);
/*登入使用者名稱*/
delimiter //
create procedure login(in sno int,in sname varchar(16))
begin
declare result int default 0;#宣告並初始化
select count(*) into result from student #賦值
where student.sno=sno and student.sname=sname;
select if(result>0,'成功','失敗');
end//
call login(20162002,'晨晨')
/*使用inout函式*/
delimiter //
create procedure inouta(inout a int,inout b int)
begin
set a=a*2;
set b=b*6;
end//
/*首先定義兩個變數
其次給變數賦值
最後選擇要列印的結果
*/set @m=6;
set @n=8;
call inouta(@m,@n)
select @m,@n
/*使用in,out函式*/
delimiter //
create procedure info(in sno int,out sname varchar(16),out sage int)
begin
select student.sname,student.sage into sname,sage
from student
where student.sno=sno;
end//
call info(20162002,@m,@n)
select @m,@n
Mysql 儲存過程1
儲存過程的優勢 1,一般的sql命令在執行前需要解析 編譯前提準備過程,但是儲存 過程是事先完成了解析,編譯處理後儲存在資料庫的,執行時能減輕 資料庫負擔,提高執行效能。2,減輕網路負擔,之前的傳遞sql語句,變成現在的傳遞引數。3,防止對錶的直接訪問。4,可以減少大部分的程式 5,msyql5.0...
mysql儲存過程(1)
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 useri...
mysql高階 儲存過程 1
在一起的語言,叫做 過程 php中沒有過程,只有函式,準確的說.函式能起到過程的作用 過程 就是封裝語句,呼叫的時候,這些封裝體執行 函式是有返回值的過程,而過程沒有返回值的函式 過程 把若干條sql封裝起來,起個名字就是過程 儲存過程 把此過程存在資料庫中,叫做儲存過程 匿名過程 mysql 不支...