天天看点

Function函数

一.含义

一组预先编译好的SQL语句的集合,理解成批处理语句

1.提高代码的复用性

2.操作简单

3.减少了编译次数并且减少了和数据服务器的连接次数,提高了效率

二.和存储过程的区别

存储过程:可以无返回,也可以有多个返回,适合做批量插入、批量更新

函数:有且仅有一个返回,合适做数据处理后返回一个结果,做查询一个值

三.语法格式

CREATE FUNCTION 函数名(参数列表)RETUENS 返回类型
BEGIN
 	函数体
END
           

注:

1.参数列表包含两部分:参数名 参数类型

2.函数中仅有一句话,则可以省略begin end

3.使用delimiter语句设置结束标签

四.调用语法

SELECT 函数名(参数列表)

执行函数中的所有语句 函数中有显示的语句它也能显示

有插入修改也能做,执行完把显示值返回出来

五.函数示例

Function函数

1.无参有返回

CREATE FUNCTION func1() RETURNS INT
BEGIN
  DECLARE c INT DEFAULT 0;#定义局部变量c
	SELECT COUNT(*) INTO c #赋值给c
	from student;
RETURN c;
END 
#调用函数
SELECT func1();
           

结果

Function函数

2.有参有返回

CREATE FUNCTION func2(stuname VARCHAR(255)) RETURNS INT

BEGIN

 DECLARE age INT DEFAULT 0;

SELECT e.age INTO age  
FROM student e WHERE e.name = stuname;
RETURN age;

END
#调用函数
SELECT func2('小明');
           

3.定义用户变量

CREATE FUNCTION func3(stuname VARCHAR(255)) RETURNS INT

BEGIN

 SET @ag = 0;#定义用户变量

SELECT e.age INTO @ag #赋值
FROM student e WHERE e.name = stuname;
RETURN @ag;

END
           

4.展示函数

#展示函数
SHOW CREATE FUNCTION func3;
           

5.删除函数

#删除函数
DROP FUNCTION func3;
           

参考文章:https://blog.csdn.net/wzhJava_Only/article/details/87712460