MySQL函数、函数无参有返回、函数有参数返回、查看函数、删除函数

函数

  • 含义:一组预先编译好的sql语句的集合,理解成批处理语句
    1.提高代码的重用性
    2.简化操作
    3.减少了编译次数并且减少了和数据库服务器的连接次数,提高了效率

  • 区别:
    存储过程:可以有0个返回,也可以有多个返回,适合做批量插入、批量更新
    函数:有且仅有1个返回,适合做处理数据后返回一个结果

一、创建语法

CREATE FUNCTION 函数名(参数列表) RETURNS 返回类型
BEGIN
	函数体
END
  1. 参数列表包含两部分:
    参数名 参数类型

  2. 函数体:肯定会有return语句,如果没有会报错
    如果return语句没有放在函数体的最后不会报错,但不建议;
    return 值;

  3. 函数体中仅有一句话。则可以省略begin end

  4. 使用delimiter语句设置结束标记
    例如:delimiter $
    注意:如果是delimiter $;
    则结束标记为 $;

二、调用语法

SELECT 函数名(参数列表)

案例演示------------------------------------------

1.无参有返回

#案例:返回admin表的人员个数

USE test
DELIMITER $

CREATE FUNCTION myf1() RETURNS INT
BEGIN
	DECLARE c INT DEFAULT 0;#定义变量
	SELECT COUNT(*) INTO c  #赋值
	FROM admin;
	RETURN c;
END $
SELECT myf1() $

MySQL函数、函数无参有返回、函数有参数返回、查看函数、删除函数_第1张图片

MySQL函数、函数无参有返回、函数有参数返回、查看函数、删除函数_第2张图片

2.有参数返回

#根据人员名,返回其id

CREATE FUNCTION myf2(uname VARCHAR(20)) RETURNS INT
BEGIN
	DECLARE c INT DEFAULT 0;
	#或者:set @c=0;
	#或者:decleare c int;
	SELECT admin.id INTO c
	FROM admin
	WHERE admin.`username`=uname;
	RETURN c;
END $
SELECT myf2('john') $

MySQL函数、函数无参有返回、函数有参数返回、查看函数、删除函数_第3张图片

三、查看函数

SHOW CREATE FUNCTION myf1;

四、删除函数

DROP FUNCTION myf2;

你可能感兴趣的:(MySQL)