含义:一组预先编译好的SQL语句的集合,可以理解成批处理语句
作用:
提高代码的重用性
简化操作
减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率
和存储过程的区别:
存储过程:可以有0个返回,也可以有多个返回,适合做批量插入、批量更新
函数:有且仅有1 个返回,适合做处理数据后返回一个结果
DELIMITER $ CREATE FUNCTION 函数名(参数列表) RETURNS 返回类型 BEGIN 函数体 END$ DELIMITER ;
注意:
参数列表 包含两部分: 参数名 参数类型
开头必须要声明返回值类型。
函数体中必须有return语句,没有会报错
使用 delimiter 语句设置结束标记
----------
SELECT 函数名(参数列表)
函数使用由于函数是有返回值的,所以使用select是可以打印出这个值的。
==========
案例:返回学生表的总个数
1.1 创建函数
DELIMITER $ CREATE FUNCTION myFun1() RETURNS INT BEGIN DECLARE num INT DEFAULT 0; #定义一个变量 SELECT COUNT(*) INTO num #赋值 FROM student; RETURN num; #返回值 END $ DELIMITER ;
定义好后需要执行以下进行编译
1.2 调用函数
SELECT myFun1();
----------
案例:根据学生名返回分数
2.1 创建函数
DELIMITER $ CREATE FUNCTION myFun2(stuName VARCHAR(20)) RETURNS INT BEGIN DECLARE grade INT DEFAULT 0; #定义变量 SELECT s.grade INTO grade #赋值 FROM student s WHERE s.name = stuName; RETURN grade; #返回 END $ DELIMITER ;
2.2 调用
SELECT myFun2('盖伦');
==========
SHOW CREATE FUNCTION myFun1;
DROP FUNCTION myFun2;
本文讲解了Mysql函数 的相关内容,更多相关推荐请关注php中文网。
相关推荐:
以上就是Mysql函数 的相关讲解的详细内容,更多请关注php中文网其它相关文章!
已抢48115个
抢已抢3450个
抢已抢1333个
抢已抢1436个
抢已抢1900个
抢已抢2501个
抢