知识点六:MySQL函数的创建(13)
内置函数:
自定义函数:
首先查看是否已经开启了创建函数的功能:
SHOW VARIABLES LIKE ‘%fun%’;
如果变量的值是OFF,那么需要开启
set global log_bin_trust_function_creators=1;
创建函数的语法:
CREATE FUNCTION 函数名(变量1,变量2……)
RETURNS 数据类型
BEGIN
……执行的程序代码
RETURN 数据;
END;
1 --默认数据2 CREATE TABLE IF NOT EXISTS userinfo(3 userid int(11) NOT NULL AUTO_INCREMENT KEY,4 username varchar(20) DEFAULT NULL,5 userpwd varchar(20) DEFAULT NULL,6 );7 8 INSERT INTO userinfo VALUES(1,'admin','123'),(2,'test','test'),(4,'yy','ko'),(5,'yy','ko');
1 --13 函数的创建 2 --求两个数的和 3 DELIMITER // 4 CREATE FUNCTION fun_add(a int, b int) 5 RETURNS int 6 BEGIN 7 RETURN a+b; 8 END 9 //10 11 DELIMITER ;12 SELECT fun_add(1,2);13 14 SHOW CREATE FUNCTION fun_add;15 16 17 --用户登陆检测18 DELIMITER //19 CREATE FUNCTION fun_login(uname VARCHAR(20), pwd VARCHAR(20))20 RETURNS VARCHAR(20)21 BEGIN22 DECLARE rowResult int DEFAULT 0;23 SELECT COUNT(*) INTO rowResult FROM userinfo where username=uname;24 IF rowResult =0 THEN25 RETURN '用户不存在!';26 END IF;27 SELECT COUNT(*) INTO rowResult FROM userinfo where username=uname AND userpwd=pwd;28 IF rowResult =0 THEN29 RETURN '密码错误!';30 ELSE31 RETURN '登陆成功!';32 END IF;33 END 34 //35 36 DELIMITER ;37 SELECT fun_login('admin','123');
函数的管理:
查看数据库下的函数:
SELECT * FROM mysql.func;或者 SHOW FUNCTION status;
查看函数内容:
SHOW CREATE FUNCTION fun_name;
删除函数:
DROP FUNCTION IF EXISTS fun_name;