12儲存過程

2021-10-07 03:51:43 字數 3068 閱讀 2650

含義:一組預先編譯好的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 呼叫 儲存過程名 插入內容.插入...