/* 一、创建语法 create function 函数名(参数列表) return 返回类型 begin 函数体 end 注意: 1、参数列表包含两部分: 参数名、参数类型 2、函数体:肯定会有return语句,如果没有会报错,如果return语句没有放在函数体的最后不会报错,但不建议return 值 3、函数体中仅有一句话,则可以省略begin end 4、使用 delimiter 语句设置结束标记 二、调用语法 select 函数名(参数列表) 三、查看函数 show create function 函数名; 四、删除函数 drop function 函数名; */
#返回公司的员工个数(无参返回) createfunction myf1() returnsint begin declare c intdefault0 #定义变量 selectcount(*) into c #赋值 from employees; return c; end $
#根据员工名返回他的工资(有参返回) createfunction myf2(cmpName varchar(20)) returndouble begin set@sal=0; select salary into@sal from employees where last_name = empName; return@sal; end $
2、流程控制图
sql
/* 顺序结构:程序从上往下依次执行 分支结构:程序从两条或多条路径中选择一条去执行 循环结构:程序在满足一定条件的基础上,重复执行一段代码 */ 一、分支结构 1、 if 函数 语法:if(条件,值1,值2) 特点:可以用在任何位置 2、 case 结构 情况一:类似于switch case 表达式 when 值1then 结果1或语句1(如果是语句,需要加分号) when 值2then 结果2或语句2(如果是语句,需要加分号) ... else 结果n或语句n(如果是语句,需要加分号) end 【case】(如果是放在beginend中需要加上case,如果放在select后面不需要)
情况二:类似于多重if case when 条件1then 结果1或语句1(如果是语句,需要加分号) when 条件2then 结果2或语句2(如果是语句,需要加分号) ... else 结果n或语句n(如果是语句,需要加分号) end 【case】(如果是放在beginend中需要加上case,如果放在select后面不需要) 3、 if 结构 if 情况1then 语句1; elseif 情况2then 语句2; ... else 语句n; end if; 二、循环结构 语法: 【标签:】WHILE 循环条件 DO 循环体 END WHILE 【标签】; 特点: 只能放在BEGINEND里面 如果要搭配leave跳转语句,需要使用标签,否则可以不用标签 leave类似于java中的break语句,跳出所在循环!!!