mysql流程控制 MySQL 流程控制

2021-10-17 13:17:39 字數 1640 閱讀 3636

流程控制:

1、順序結構:程式從上往下依次執行

2、分支結構:多條路徑選擇一條

3、迴圈結構:在規定範圍內重複執行

(一)分支結構:

1:if函式

功能:實現分支流

語法:if(表示式1,表示式2,表示式3)

執行順序:

執行表示式1,成立返回表示式2的值,不成立則返回表示式3的值

應用:任何地方

例:if(num>10,'true','false')

/*輸入年齡提示年齡階段*/

create function test_if(age int) returns char(16)

begin

if age>60 and age<=90 then return '老奶奶';

elseif age>30 and age<=60 then return '大姐姐';

elseif age>18 and age<=30 then return '小姐姐';

elseif age>12 and age<=18 then return '女孩子';

elseif age>0 and age<=12 then return '小女生';

end if;

enddrop function test_if;

select test_if(6)

2:case結構

情況1:一般用於等值判斷

語法:case 變數|表示式|字段

when 要判斷的值 then 返回的值1或語句1;

when 要判斷的值 then 返回的值2或語句2;

else 要返回的值n或語句n;

end case

情況2:多重if語句,區間判斷

語法:case 變數|表示式|字段

when 要判斷的條件1 then 返回的值1或語句1;

when 要判斷的條件2 then 返回的值2或語句2;

else 要返回的值n或語句n;

end case

特點1:

可以作為表示式,巢狀其他語句使用,放在begin end內外都可以

可以作為單獨語句使用,只能放在begin end中

特點2:

如果when的值滿足,則執行then後面的語句,並結束case

都不滿足,則執行else中的值或語句

特點3:

else可以省略,若else省略,且所有when都不滿足,則返回null

例2:/*輸入年齡提示年齡階段*/

delimiter //

create procedure test_case(in age int)

begin

case

when age>60 and age<=90 then select '老奶奶';

when age>30 and age<=60 then select '大姐姐';

when age>18 and age<=30 then select '小姐姐';

when age>12 and age<=18 then select '女孩子';

when age>0 and age<=12 then select '小女生';

end case;

endcall test_case(18)

MySQL 流程控制

流程控制 1 順序結構 程式從上往下依次執行 2 分支結構 多條路徑選擇一條 3 迴圈結構 在規定範圍內重複執行 一 分支結構 1 if函式 功能 實現分支流 語法 if 表示式1,表示式2,表示式3 執行順序 執行表示式1,成立返回表示式2的值,不成立則返回表示式3的值 應用 任何地方 例 if ...

流程控制語句Mysql

流程控制語句 1.順序控制語句 begin.end.delimiter create function max1 i int,j int returns int begin return select from student where 學號 xh end delimiter 2.分支控制語句 i...

MYSQL 流程控制函式

if函式 條件,返回值1,返回值2 select if 10 5,大 小 select last name,commission pct,if commission pct is null,不存在 有 別名 from employee case函式 等值 1.case 要判斷的變數或表示式 when...