知识点六: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 BEGIN 22 DECLARE rowResult int DEFAULT 0; 23 SELECT COUNT(*) INTO rowResult FROM userinfo where username=uname; 24 IF rowResult =0 THEN 25 RETURN '用户不存在!'; 26 END IF; 27 SELECT COUNT(*) INTO rowResult FROM userinfo where username=uname AND userpwd=pwd; 28 IF rowResult =0 THEN 29 RETURN '密码错误!'; 30 ELSE 31 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;