登录
首页 >  数据库 >  MySQL

MySQL 自定义函数

来源:SegmentFault

时间:2023-02-24 15:57:57 134浏览 收藏

大家好,今天本人给大家带来文章《MySQL 自定义函数》,文中内容主要涉及到MySQL,如果你对数据库方面的知识点感兴趣,那就请各位朋友继续看下去吧~希望能真正帮到你们,谢谢!

自定义函数概念

用户自定义函数(user-defined function, UDF)是一种对MySQL扩展的途径, 其用法与内置函数相同。
自定义函数的两个必要条件:

  • 参数
  • 返回值 (只能有一个)

MySQL自定义函数支持最多1024个参数.

创建自定义函数

CREATE FUNCTION function_name
RETURNS {STRING|INTEGER|REAL|DECIMAL|...}
routine_body -- 函数体

关于函数体

  1. 函数体由合法的SQL语法构成;
  2. 函数体可以是简单的
    CREATE FUNCTION f1() 
    RETURNS varchar(30)
    return DATE_FORMAT(NOW(),'%Y年%m月%d日 %H点:%i分:%s秒');
    --使用函数
    SELECT f1();

    SELECT DATE_FORMAT(NOW(),'%Y-%m-%d');
    --其结果是:
    2015-07-04
    --各字母所表示的含义为:
    Y:2015              
    y:15
    M:july
    m:07
    D:4th
    d:04
    带参数的自定义函数

    CREATE FUNCTION f2 
    (num1 SMALLINT UNSIGNED,num2 SMALLINT UNSIGNED)
    RETURNS FLOAT(10,2) UNSIGNED
    RETURN(num1+num2)/2
    具有复合结构函数体的自定义函数

    这里要用到修改语句分隔符

    DELEMITER 分隔符
    --如,将语句分隔符修改为 '//'
    DELIMITER //  

    当函数体内需要执行的是多条语句时,要使用

    DELIMITER //
    CREATE FUNCTION ADD_USER
    (p_id SMALLINT,username VARCHAR(20))
    RETURNS INT UNSIGNED
    BEGIN
    INSERT user(p_id,username) VALUES(p_id,username);
    RETURN LAST_INSERT_ID();
    END
    删除函数

    DROP FUNCTION [IF EXISTS] fun_name;

    本篇关于《MySQL 自定义函数》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于数据库的相关知识,请关注golang学习网公众号!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表