多測師 MySQL 儲存過程

2021-10-06 00:13:23 字數 4148 閱讀 8188

1、儲存過程

使用儲存過程的優點

建立儲存過程

# 建立儲存過程

delimiter //

create procedure 儲存過程名稱([in|out|inout]引數名,資料型別)

begin

儲存過程體

end

//delimiter ;

call 儲存過程名稱(引數) # 呼叫儲存過程

begin...end 代表儲存過程體的開始和結束

刪除乙個儲存過程

drop procedure if exists 儲存過程名稱   # 加強**的健壯性  

呼叫乙個儲存過程  

in 引數值在呼叫時必須指定  

out 引數可以在呼叫後被返回  

inout 引數呼叫時指定,並且可以被返回 

# in 輸入引數,b 後面括號中接收引數

delimiter //

drop procedure if exists b;

create procedure b(in n int)

begin

select n;

set n = 2;

select n;

end//

delimiter ;

set @n = 1;

call b(@n); # 呼叫儲存過程 b

+------+

| n |

+------+

| 1 |

+------+

+------+

| n |

+------+

| 2 |

+------+

# out 輸出引數

# out 是向呼叫者輸出引數,不接收輸入的引數

delimiter //

drop procedure if exists b;

create procedure b(out n int)

begin

select n;

set n = 2;

select n;

end//

delimiter ;

set @n = 1;

call b(@n); # 呼叫儲存過程 b

+-------+

| n |

+-------+

| null | # 因為 out 是向呼叫者輸出引數,不接收輸入的引數,所以儲存過程裡的 n 為 null

+-------+

+-------+

| n |

+-------+

| 2 |

+-------+

# inout 輸入引數

delimiter //

drop procedure if exists b;

create procedure b(inout n int)

begin

select n;

set n = 2;

select n;

end//

delimiter ;

set @n = 1;

call b(@n); # 呼叫儲存過程 b

+---------+

| n |

+---------+

| 1 |

+---------+

+---------+

| n |

+---------+

| 2 |

+---------+

2、例項

# 建立表 t 且往表 t 中迴圈插入資料

delimiter //

drop procedure if exists a;

create procedure a(in n int)

begin

declare x int default 1;

declare y int default 10;

drop table if exists t;

create table t(id int(3),age int(3));

while n < 20 do

insert into t values(x,y);

set x = x + 1;

set y = y + 10;

set n = n + 1;

end while;

select * from t;

end//

delimiter ;

call a(5) # 呼叫儲存過程

delimiter //

drop procedure if exists i;

create procedure i(n int)

begin

declare x int default 1;

declare y varchar(20) default "";

declare z int default 22;

while n <=100 do

set y = concat("zhangsan",x);

insert into t values(x,y,z);

set x = x + 1;

set n = n + 1;

end while;

select count(*) from t;

end//

delimiter ;

call i(1);

delimiter //

drop procedure if exists b;

create procedure b(in n int)

begin

declare x int default 1;

while n < 10 do

delete from t where id = x;

set n = n + 1;

set x = x + 1;

end while;

select * from t;

end//

delimiter ;

call b(0) # 呼叫儲存過程

delimiter //

drop procedure if exists c;

create procedure c(n int)

begin

drop table if exists dcs;

create table dcs(id int(1),name varchar(10),*** char(2));

alter table dcs change id id int(1) primary key auto_increment;

insert into dcs(name,***)values('zhangsan1','m'),('lisi1','m');

insert into dcs(name,***)values('zhangsan2','m'),('lisi2','m');

insert into dcs(name,***)values('zhangsan3','m'),('lisi3','m');

insert into dcs(name,***)values('zhangsan4','m'),('lisi4','m');

insert into dcs(name,***)values('zhangsan5','m'),('lisi5','m');

if (n<>0) then

select * from dcs where id < n;

else

select * from dcs;

end if;

end//

delimiter ;

call c(6) # 呼叫儲存過程

mysql集群 儲存過程 mysql集群壓測

mysql壓測 mysql自帶就有乙個叫mysqlslap的壓力測試工具,通過模擬多個併發客戶端訪問mysql來執行壓力測試,並且能很好的對比多個儲存引擎在相同環境下的併發壓力效能差別。通過mysqlslap help可以獲得可用的選項,這裡列一些主要的引數,更詳細的說明參考官方手冊。如果是系統自帶...

多測師 介面結構內容

1 介面結構 包含了哪些內容 1 request url 請求位址 2 request method 請求方式 常見的 get 常用於向伺服器獲取資料 put 常用於審核操作介面 delete 常用於刪除類介面 3 http 狀態碼 分類 分類描述 1 資訊,伺服器收到請求,需要請求者繼續執行操作 ...

多測師 Python(內建函式)

一.python內建函式 1.id 返回物件的記憶體位址 a 1 print id a print id 1 2.int 用於將資料型別轉換為整型 a 1 b 2 print int a b 3.str 用於將資料型別轉換為字串 age 18 name zhengying print name ag...