zoukankan      html  css  js  c++  java
  • mysql中的自定义函数

    一、基本语法

      delimiter 自定义符号  -- 如果函数体只有一条语句, begin和end可以省略, 同时delimiter也可以省略

      create function 函数名(形参列表) returns 返回类型  -- 注意是retruns

      begin

        函数体    -- 函数内定义的变量如:set @x = 1; 变量x为全局变量,在函数外面也可以使用

        返回值

      end

      自定义符号

      delimiter ;

    二、示例

    -- 自定义函数
    delimiter $$
    create function myfun3(ia int, ib int) returns int
    begin
        return ia + ib;
    end
    $$
    delimiter ;

    三、查看函数
      1. show function status [like 'pattern'];  -- 查看所有自定义函数, 自定义函数只能在本数据库使用。

      2. show create function 函数名;  -- 查看函数创建语句

    四、删除函数

      drop function 函数名;

    五、综合应用

    1. 使用全局变量

    -- 计算1 ~ 指定数据之间的和
    delimiter $$
    create function my_sum(x int) returns int
    begin
        set @i = 1;
        set @sum = 0;
        while @i <= x do
            set @sum = @sum + @i;
            set @i = @i + 1;
        end while;
        return @sum;
    end
    $$
    delimiter ;

     2. 使用局部变量

    -- 求1 ~ 指定数之前的和,但5的倍数不加
    delimiter $$
    create function my_sum2(x int) returns int
    begin
        declare i int default 1;
        declare sum int default 0;
        sumwhile:while i <= x do
            if i % 5 = 0 then
                set i = i + 1;
                iterate sumwhile;
            end if;
            set sum = sum + i;
            set i = i + 1;
        end while;
        return sum;
    end
    $$
    delimiter ;
  • 相关阅读:
    NOIp199Cantor表
    NOIP2001数的计算
    NOIP2010排队接水
    普及组2006第三题jam的计数法
    2013提高组积木大赛
    洛谷1223排队接水
    9.3noip模拟赛第一题卡片
    2002普及组第四题过河卒
    细胞分裂(NOIP2009 普及组第三题)
    道路游戏(NOIP2009 普及组第四题)
  • 原文地址:https://www.cnblogs.com/pengyin/p/6395652.html
Copyright © 2011-2022 走看看