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...