MySQL流程控制結構的使用

一、if結構

1.語法

if 條件1 then 語句1;
elseif 條件2 then 語句2;
else 語句n;
end if;

2.示例

1) 創建

delimiter $
create function func_if(score int) returns char deterministic
begin
	if score >= 90 and score <= 100 then return 'A';
	elseif score>=80 then return 'B';
	elseif score>=60 then return 'C';
	else return 'D';
	end if;
end $

2) 調用

select func_if(60);

二、case語句

1.語法

case 變量|表達式|字段
when 條件1或值1 then 語句1;
when 條件2或值2 then 語句2;
else 語句n;
end case;

2.示例

1) 創建

delimiter $
create function func_case(score int) returns char deterministic
begin
	case
	when score >= 90 and score <= 100 then return 'A';
	when score>=80 then return 'B';
	when score>=60 then return 'C';
	else return 'D';
	end case;
end $

2) 調用

select func_case(80);

三、while語句

一、語法

[標籤:]while循環條件 do
    循環體;
end while [標籤];

二、示例

delimiter $
create procedure proc_while()
begin
	declare i int default 0;
	while i<10 do
		insert into student(id,name) values(i,char(i%(90-65)+65));
		set i=i+1;
	end while;
end $

四、loop語句

iterate類似於continue,繼續,結束本次循環,繼續下一次
leave類似於break,跳出,結束當前所在的循環

一、語法

[標籤:] loop
    循環體;
end loop [標籤];

二、示例

delimiter $
create procedure proc_loop()
begin
	declare i int default 0;
	label:loop
		insert into student(id,name) values(i,char(i%(90-65)+65));
		set i = i+1;
		if i > 10 then leave label; end if;
	end loop label;
end $

五、repeat語句

一、語法

[標籤:] repeat
    循環體;
until 結束循環條件 end repeat [標籤];

二、示例

delimiter $
create procedure proc_repeat()
begin
	declare i int default 0;
	repeat
		insert into student(id,name) values(i,char(i%(90-65)+65));
		set i=i+1;
	until i >= 10 end repeat;
end $

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章