含義:一組預先編譯好的sql語句的集合,理解成批處理語句
create
procedure 儲存過程名(引數列表)
begin
儲存過程體(一組合法的sql語句)
end#注意:
/*1、引數列表包含三部分
引數模式 引數名 引數型別
舉例:in stuname varchar(20)
引數模式:
in:該引數可以作為輸入,也就是該引數需要呼叫方傳入值
out:該引數可以作為輸出,也就是該引數可以作為返回值
inout:該引數既可以作為輸入又可以作為輸出,也就是該引數既需要傳入值,又可以返回值
2、如果儲存過程體僅僅只有一句話,begin end可以省略
儲存過程體中的每條sql語句的結尾要求必須加分號。
儲存過程的結尾可以使用 delimiter 重新設定
語法:delimiter 結束標記
案例:delimiter $
*/
call 儲存過程名(實參列表);
#1.空參列表
#案例:插入到admin表中五條記錄
use girls;
delimiter
create
procedure myp1(
)begin
insert
into admin(username,
`password`
)values
('john1'
,'0000'),
('lily'
,'0000'),
('rose'
,'0000'),
('jack'
,'0000'),
('tom'
,'0000');
end#呼叫
call myp1(
)#2.建立帶in模式引數的儲存過程
#案例1:建立儲存過程實現 根據女神名,查詢對應的男神資訊
create
procedure myp2(
in beautyname varchar(20
))begin
select bo.
*from boys bo
right
join beauty b on bo.id = b.boyfriend_id
where b.name=beautyname;
end#呼叫
call myp2(
'柳岩'
)#案例2 :建立儲存過程實現,使用者是否登入成功
create
procedure myp4(
in username varchar(20
),in password varchar(20
))begin
declare result int
default0;
#宣告並初始化
select
count(*
)into result#賦值
from admin
where admin.username = username
and admin.password = password;
select
if(result>0,
'成功'
,'失敗');
#使用end
#呼叫call myp3(
'張飛'
,'8888'
)#3.建立out 模式引數的儲存過程
#案例1:根據輸入的女神名,返回對應的男神名
create
procedure myp6(
in beautyname varchar(20
),out boyname varchar(20
))begin
select bo.boyname into boyname
from boys bo
right
join
beauty b on b.boyfriend_id = bo.id
where b.name=beautyname ;
end#案例2:根據輸入的女神名,返回對應的男神名和魅力值
create
procedure myp7(
in beautyname varchar(20
),out boyname varchar(20
),out usercp int
)begin
select boys.boyname ,boys.usercp into boyname,usercp
from boys
right
join
beauty b on b.boyfriend_id = boys.id
where b.name=beautyname ;
end $
#呼叫call myp7(
'小昭'
,@name
,@cp
)select
@name
,@cp$
#4.建立帶inout模式引數的儲存過程
#案例1:傳入a和b兩個值,最終a和b都翻倍並返回
create
procedure myp8(
inout a int
,inout b int
)begin
set a=a*2;
set b=b*2;
end#呼叫
set@m=10
set@n=20
call myp8(@m,
@n)select@m,
@n
#三、刪除儲存過程
#語法:drop procedure 儲存過程名
drop
procedure p1;
drop
procedure p2,p3;
#×#四、檢視儲存過程的資訊
desc myp2;×
show
create
procedure myp8;
ORACLE學習12 儲存過程procedure
儲存過程也是一種pl sql塊,是存入資料庫的pl sql塊。但儲存過程不同於已經普通的pl sql程式,我們通常把pl sql程式稱為無名塊,而儲存過程是以命名的方式儲存於資料庫中的。因此,我們可以這樣理解,為plsql程式塊起個名字,不用每次都編譯,可以直接呼叫,就是儲存過程。和pl sql程式...
mysql 第12章 儲存過程
2015 10 24 目錄 例1 管理員工的儲存過程定義 delimiter create procedure employee add p name char 64 p email char 64 p password char 64 modifies sql data begin declare...
1月12日 儲存過程
一 儲存過程 操作 開啟表所在的資料庫 開啟可程式設計性 看到儲存過程 在儲存過程上右擊新建 從create procedure開始寫程式 1 建立 create procedure 函式名 相當於函式的形參 格式 變數名 變數型別 asbegin 函式體.end2 呼叫 儲存過程名 插入內容.插入...