补坑+4
#函数
/*
含义:一组预先编译好的SQL语句集合,理解成批处理语句(缓存?)
优点:1、提高代码重用性,2、简化操作,3、减少了编译次数和数据库服务器的连接次数,提高了效率
函数和存储过程的区别:
存储过程:可以有0个或多个返回值,适合做批量插入或批量更新
函数:有且仅有1个返回值,适合做处理数据后返回一个结果
*/
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#一、创建函数
/*
语法:
create function 函数名(参数列表)returns 返回类型
begin
函数体
end
注意:
1、参数列表包含:参数名,参数类型
2、函数体:一定会有return语句,没有会报错
如果return语句没有放在函数体最后,不会报错,但无意义
3、如果函数体中只有一句话,可以省略begin end
4、需要使用delimiter设置结束标记符
*/
#二、调用函数语法
SELECT 函数名(参数列表)
-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- ------------------1.无参有返回----------------------
#案例1、返回公司的员工个数
CREATE FUNCTION myf1 () RETURNS INT
BEGIN
DECLARE c INT DEFAULT 0; #定义一个局部变量来接收返回值
SELECT COUNT(*) INTO c FROM `employees`; #给局部变量赋值
RETURN c;
END$
SELECT myf1()$
-- ------------------2.有参有返回----------------------
#案例2、根据员工名返回他的工资