1.函数和存储过的区别:
存储过程:可以有0个返回,也可以有多个返回,适合做批量插入,提高了效率。
函数:有且仅有一个返回值,适合做处理数据后返回一个结果。
2.函数的创建语法:
CREATE FUNCTION 函数名(参数列表) returns 返回类型
BEGIN
函数体
END
注意:
参数列表包含两部分
参数名 参数类型
函数体:肯定会有return语句,没有会报错
3.调用语法
select 函数名(参数列表)
4.案例演示
4.1无参数
找出emp表中的员工人员数
CREATE FUNCTION test1() RETURNS INT
BEGIN
DECLARE c INT DEFAULT 0;#定义变量 作用范围局部
SELECT COUNT(*) INTO c#赋值
from emp;
return c;
END
//调用函数
SELECT test1()
结果如下
4.2有参数
查询名字是wade员工的工资
CREATE FUNCTION test2(empname VARCHAR(20)) RETURNS DOUBLE
BEGIN
SET @sal=0; //类似java中的全局变量
SELECT sal into @sal
FROM emp
WHERE ename=empname;
return @sal;
END
SELECT test2('ward')
结果如下