Mysql学习笔记(10):函数
含义:一组预先编译好的SQL语句的集合,可以理解成批处理语句
作用:
- 提高代码的重用性
- 简化操作
- 减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率
和存储过程的区别:
存储过程:可以有0个返回,也可以有多个返回,适合做批量插入、批量更新
函数:有且仅有1 个返回,适合做处理数据后返回一个结果
一、函数的语法
1. 创建
DELIMITER $
CREATE FUNCTION 函数名(参数列表) RETURNS 返回类型
BEGIN
函数体
END$
DELIMITER ;
注意:
- 参数列表 包含两部分: 参数名 参数类型
- 开头必须要声明返回值类型。
- 函数体中必须有return语句,没有会报错
- 使用 delimiter 语句设置结束标记
-————-
2. 调用
SELECT 函数名(参数列表)
函数使用由于函数是有返回值的,所以使用select是可以打印出这个值的。
==========
二、案例演示
1. 无参有返回函数
案例:返回学生表的总个数
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.有参有返回
案例:根据学生名返回分数
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;
还没有评论,来说两句吧...