Mysql流程控制结构
生活随笔
收集整理的這篇文章主要介紹了
Mysql流程控制结构
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
流程控制結構
順序、分支、循環(huán)
1. 分支結構
- if函數(shù)
- case結構
- if結構
#案例1:創(chuàng)建函數(shù),實現(xiàn)傳入成績,如果成績>90,返回A,如果成績>80,返回B,如果成績>60,返回C,否則返回D
CREATE FUNCTION test_if(score FLOAT) RETURNS CHAR BEGINDECLARE ch CHAR DEFAULT 'A';IF score>90 THEN SET ch='A';ELSEIF score>80 THEN SET ch='B';ELSEIF score>60 THEN SET ch='C';ELSE SET ch='D';END IF;RETURN ch; END $SELECT test_if(87)$#案例2:創(chuàng)建存儲過程,如果工資<2000,則刪除,如果5000>工資>2000,則漲工資1000,否則漲工資500
CREATE PROCEDURE test_if_pro(IN sal DOUBLE) BEGINIF sal<2000 THEN DELETE FROM employees WHERE employees.salary=sal;ELSEIF sal>=2000 AND sal<5000 THEN UPDATE employees SET salary=salary+1000 WHERE employees.`salary`=sal;ELSE UPDATE employees SET salary=salary+500 WHERE employees.`salary`=sal;END IF;END $CALL test_if_pro(2100)$#案例1:創(chuàng)建函數(shù),實現(xiàn)傳入成績,如果成績>90,返回A,如果成績>80,返回B,如果成績>60,返回C,否則返回D
CREATE FUNCTION test_case(score FLOAT) RETURNS CHAR BEGIN DECLARE ch CHAR DEFAULT 'A';CASE WHEN score>90 THEN SET ch='A';WHEN score>80 THEN SET ch='B';WHEN score>60 THEN SET ch='C';ELSE SET ch='D';END CASE;RETURN ch; END $SELECT test_case(56)$2. 循環(huán)結構
分類:
while、loop、repeat循環(huán)控制:
iterate類似于 continue,繼續(xù),結束本次循環(huán),繼續(xù)下一次 leave 類似于 break,跳出,結束當前所在的循環(huán)- while
- loop
- repeat
1.沒有添加循環(huán)控制語句
#案例:批量插入,根據次數(shù)插入到admin表中多條記錄
2.添加leave語句
#案例:批量插入,根據次數(shù)插入到admin表中多條記錄,如果次數(shù)>20則停止
TRUNCATE TABLE admin$ DROP PROCEDURE test_while1$ CREATE PROCEDURE test_while1(IN insertCount INT) BEGINDECLARE i INT DEFAULT 1;a:WHILE i<=insertCount DOINSERT INTO admin(username,`password`) VALUES(CONCAT('xiaohua',i),'0000');IF i>=20 THEN LEAVE a;END IF;SET i=i+1;END WHILE a; END $CALL test_while1(100)$3.添加iterate語句
#案例:批量插入,根據次數(shù)插入到admin表中多條記錄,只插入偶數(shù)次
TRUNCATE TABLE admin$ DROP PROCEDURE test_while1$ CREATE PROCEDURE test_while1(IN insertCount INT) BEGINDECLARE i INT DEFAULT 0;a:WHILE i<=insertCount DOSET i=i+1;IF MOD(i,2)!=0 THEN ITERATE a;END IF;INSERT INTO admin(username,`password`) VALUES(CONCAT('xiaohua',i),'0000');END WHILE a; END $CALL test_while1(100)$int i=0; while(i<=insertCount){i++;if(i%2==0){continue;}插入 }總結
以上是生活随笔為你收集整理的Mysql流程控制结构的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 互联网晚报 | 11月25日 星期四 |
- 下一篇: 发个红包封面