函数:一组雨欣编译好的sql语句集合,理解成批处理语句
1 提高代码的重用性
2 简化操作
3 减少编译次数并且减少了和数据库服务器的连接次数,提高效率
和存储过程的区别:
存储过程:可以有0个返回,也可以有多个返回。适合做批量的插入、批量的更新
函数:只能有一个返回,适合做处理数据后返回一个结果
1.创建语法:
CREATE FUNCTION 函数名(参数列表) RETURNS 返回值类型
BEGIN
函数体
END
注意:
1.参数列表包含两部分
参数名 参数类型
2.函数体:肯定会有return语句,如果没有就会报错
如果return语句没有放在函数体的最后也不会报错,但是不建议
return 值;
3. 函数体中仅有一句话,则可以省略begin end
4.使用delimiter语句设置结束标记
2.调用:
SELECT 函数名(参数列表);
存储过程是:
call 存过名称(参数列表);
3.样例:
3.1无参
场景:查询表中数量并返回
1.声明:returns 记得后面是s
create function myp1() returns int
begin
#定义局部变量返回值
declare num int default 0;
#给局部变量赋值
select count(1) into num
from user;
#返回局部变量
return num;
end
2.调用:
select myp1();
3.2有参:
场景:根据出入的名称,查询年龄并返回
CREATE DEFINER=`root`@`%` FUNCTION `myf2`(name varchar(20)) RETURNS int
begin
#定义返回参数
declare age int default 0;
#根据传值查询并赋值
select t.age into age
from user t
where t.name =name;
#返回
return age;
end
调用:
select myf2('吴孟达');
查看函数定义:
show create funcation 函数名;
删除函数:
drop function 函数名;