知识点六:MySQL函数的创建(13)

内置函数:

自定义函数:

  首先查看是否已经开启了创建函数的功能:

    SHOW VARIABLES LIKE ‘%fun%’;

  如果变量的值是OFF,那么需要开启

    set global log_bin_trust_function_creators=1;

  创建函数的语法:

    CREATE FUNCTION 函数名(变量1,变量2……)

      RETURNS 数据类型

      BEGIN

      ……执行的程序代码

      RETURN 数据;

    END;

 --默认数据
CREATE TABLE IF NOT EXISTS userinfo(
userid int(11) NOT NULL AUTO_INCREMENT KEY,
username varchar(20) DEFAULT NULL,
userpwd varchar(20) DEFAULT NULL,
); INSERT INTO userinfo VALUES(1,'admin',''),(2,'test','test'),(4,'yy','ko'),(5,'yy','ko');

默认数据

 --13 函数的创建
--求两个数的和
DELIMITER //
CREATE FUNCTION fun_add(a int, b int)
RETURNS int
BEGIN
RETURN a+b;
END
// DELIMITER ;
SELECT fun_add(1,2); SHOW CREATE FUNCTION fun_add; --用户登陆检测
DELIMITER //
CREATE FUNCTION fun_login(uname VARCHAR(20), pwd VARCHAR(20))
RETURNS VARCHAR(20)
BEGIN
DECLARE rowResult int DEFAULT 0;
SELECT COUNT(*) INTO rowResult FROM userinfo where username=uname;
IF rowResult =0 THEN
RETURN '用户不存在!';
END IF;
SELECT COUNT(*) INTO rowResult FROM userinfo where username=uname AND userpwd=pwd;
IF rowResult =0 THEN
RETURN '密码错误!';
ELSE
RETURN '登陆成功!';
END IF;
END
// DELIMITER ;
SELECT fun_login('admin','');

函数的创建测试

函数的管理:

  查看数据库下的函数:

    SELECT * FROM mysql.func;或者 SHOW FUNCTION status;

  查看函数内容:

    SHOW CREATE FUNCTION fun_name;

  删除函数:

    DROP FUNCTION IF EXISTS fun_name;

04-15 17:25