MySQL學習筆記(九) MySQL儲存過程

2021-10-11 02:31:32 字數 2245 閱讀 1857

日期:2020/12/01

好處:提高**的重用性,簡化操作

儲存過程:

含義:一種預先編譯好的sql語句的集合,理解成批處理語句。

好處:

create procedure 儲存過程名(引數列表)

begin

儲存過程體(一組合法的sql語句)

end

注意:

引數列表包含三部分,引數模式,引數名,引數型別

引數模式:

in:該引數可以作為輸入,也就是該引數需要呼叫

out:該引數可以作為輸出,也就是該引數可以作為返回值

inout:該引數可以作為輸入也可以作為輸出,

也就是該引數需要傳入值,也可以返回值。

舉例:in stuname varchar(20)

注意事項:

call 過程儲存名(實參列表)

#案例:插入到admin表中五條記錄(girls資料庫中)

在命令提示符裡輸入以下語句:

delimiter //

create procedure myp1()

begin

insert into admin(username,`password`)

values('馬保國1','1111'),

('馬保國2','2222'),

('馬保國3','3333'),

('馬保國4','4444'),

('馬保國5','5555');

end //

這樣的話儲存過程就建立好了,然後我們來呼叫這個儲存過程:

call myp1()//
顯示ok,我們就可以來檢視這個儲存過程,使用以下語句:

select * from admin//
#案例:建立儲存過程實現 根據女神名,查詢對應的男神資訊

create procedure myp2(in beautyname varchar(20))

begin

select bo.*

from boys bo

right join beauty b on bo.id=b.boyfrind_id

where b.name=beautyname;

end //

然後再根據上面類似的方法來呼叫

create procedure myp34(in beautyname varchar(20),out boyname varchar (20))

begin

select bo.boyname into boyname

from boys bo

inner join beauty b on bo.id = b.boyfriend_id

where b.name=beautyname;

end//

#呼叫call myp5('小昭',@bname)//

select @bname//

#案例:傳入a和b兩個值,最終a和b都翻倍並返回

create procedure myp4(inout a int ,inout b int)

begin

set a=a*2;

set b=b*2;

end $

#再呼叫

set @m=10$

set @n=20$

call myp4(@m,@n)$

select @m,@n$

語法:drop procedure 儲存過程名

比如我要刪除myp1,可以使用以下語句:

drop procedure myp1;
注意,儲存過程只能乙個乙個刪除,如果使用

drop procedure myp1,myp2,myp3;
會報錯~

語法:

show create procedure 儲存名

比如我要檢視myp2的儲存過程資訊,可以使用以下語句:

show reate percedure  myp2;

MYSQL學習筆記九(索引)

1.1 概念 在mysql中,索引的關鍵字為index也叫做 鍵 key 是儲存引擎用於快速找到記錄的一種資料結構。當表中的資料量越來越大時,索引對於良好的效能非常關鍵。索引優化應該是對查詢效能優化最有效的手段,建立乙個真正最優的索引經常需要重寫sql查詢語句。注意 索引一般建立在經常的查詢的字段上...

mysql學習筆記 九 聯合查詢

union 聯合 合併 將多條查詢語句的結果合併成乙個結果 語法 查詢語句1 union 查詢語句2 union 應用場景 要查詢的結果來自於多個表,且多個表沒有直接的連線關係,但查詢的資訊一致時 特點 1 要求多條查詢語句的查詢列數是一致的!2 要求多條查詢語句的查詢的每一列的型別和順序最好一致 ...

mysql收回許可權 MySQL學習之路(九)

1.備份 mysqldump u使用者名稱 h賬號 default character set 編碼方式 p 資料庫名 位置 備份檔案名.sql 2.登陸資料庫 mysql h 賬號 u 使用者名稱 p 3.備份的是資料庫資料,所以必須先刪除原本的資料庫 然後建立乙個同名資料庫 4.恢復資料庫 my...