知识点六: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;