MYSQL进阶学习笔记五:MySQL函数的创建!(视频序号:进阶_13)

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

内置函数:

自定义函数:

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

    SHOW VARIABLES LIKE ‘%fun%’;

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

    set global log_bin_trust_function_creators=1;

  创建函数的语法:

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

      RETURNS 数据类型

      BEGIN

扫描二维码关注公众号,回复: 826495 查看本文章

      ……执行的程序代码

      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;

猜你喜欢

转载自www.cnblogs.com/darwinli/p/9036547.html