数据库技术项目式教程(MySQL)课件 任务8.2使用变量和流程控制语句.pptx
使用变量和流程控制语句;任务提出;任务分析;1.局部变量;局部变量;【例1】创建函数adds,返回两个数的和,使用局部变量。
DELIMITER//
CREATEFUNCTIONadds(aINT,bINT)RETURNSINT
BEGIN
DECLAREcINTDEFAULT0;#定义c为局部变量
setc=a+b;
RETURNc;
END;
//
DELIMITER;
#使用函数
SELECTAdds(2,3);
;2.选择语句;【例2】创建函数is_even,判断某个数是否为偶数,如果是返回1,否则返回0。
DELIMITER//
createFUNCTIONis_even(numint)RETURNSINT
begin
IFnum%2=0THEN
RETURN1;
ELSE
RETURN0;
ENDIF;
end;
//
DELIMITER;?;选择语句;【例3】在School数据库创建函数convert_grade,返回输入百分制成绩对应的五级制字符。
CREATEFUNCTIONconvert_grade(gradeDECIMAL(4,1))RETURNSVARCHAR(50)
BEGIN
DECLAREresultVARCHAR(50);
CASE
WHENgrade=90THENSETresult=优秀;
WHENgrade=80THENSETresult=良好;
WHENgrade=70THENSETresult=中等;
WHENgrade=60THENSETresult=及格;
WHENgrade60THENSETresult=不及格;
ELSESETresult=NULL;
ENDCASE;
RETURNresult;
END;;3.循环语句;【例4】创建函数rand_string,根据输入的整数n,返回1个长度为n的随机字符串。
CREATEFUNCTIONrand_string(nINT)RETURNSVARCHAR(255)
BEGIN
DECLAREchar_strvarchar(100)DEFAULTabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789;
DECLAREreturn_strvarchar(255)DEFAULT;
DECLAREiINTDEFAULT0;
WHILEinDO
SETreturn_str=concat(return_str,substring(char_str,FLOOR(1+RAND()*62),1));
SETi=i+1;
ENDWHILE;
RETURNreturn_str;
END;;任务总结