美文网首页
MySQL之:函数

MySQL之:函数

作者: Simon_Ye | 来源:发表于2020-03-22 10:35 被阅读0次

    函数:系统函数和自定义函数

    系统函数:

    https://dev.mysql.com/doc/refman/5.7/en/func-op-summary-ref.html

    自定义函数(user-defined function UDF)

    • 保存在mysql.proc表中

    • 创建UDF:
      CREATE [AGGREGATE] FUNCTION function_name(parameter_name type,[parameter_name type,...]) RETURNS {STRING|INTEGER|REAL} runtime_body

    • 说明:
      参数可以有多个,也可以没有参数
      必须有且只有一个返回值

    • 查看函数列表:
      SHOW FUNCTION STATUS;

    • 查看函数定义:
      SHOW CREATE FUNCTION function_name

    • 删除UDF:
      DROP FUNCTION function_name

    • 调用自定义函数语法:
      SELECT function_name(parameter_value,...)

    • 示例:无参UDF

      CREATE FUNCTION simpleFun() RETURNS VARCHAR(20) RETURN "Hello World!";
      
    • 示例:有参数UDF

      DELIMITER //
      CREATE FUNCTION deleteById(uid SMALLINT UNSIGNED) RETURNS VARCHAR(20)
      BEGIN
      DELETE FROM students WHERE stuid = uid;
      RETURN (SELECT COUNT(uid) FROM students);
      END//
      DELIMITER ;
      
    自定义函数中定义局部变量的语法:

    DECLARE 变量1[,变量2,...]变量类型 [DEFAULT 默认值]

    • 说明:局部变量的作用范围是在BEGIN...END程序中,而且定义局部变量语句必须在BEGIN...END的第一行定义
    • 示例:
      DELIMITER //
      CREATE FUNCTION addTwoNumber(x SMALLINT UNSIGNED,Y SMALLINT UNSIGNED)
      RETURNS SMALLINT
      BEGIN
      DECLARE a,b SMALLINT UNSIGNED DEFAULT 10;
      SET a = x,b = y;
      RETURN a+b;
      END//
      
    为变量赋值语法

    SET parameter_name = value[,parameter_name = value...]
    SELECT INTO parameter_name

    • 示例:
      ...
      DECLARE x int;
      SELECT COUNT(id) FROM tdb_name INTO x;
      RETURN x;
      END//
      

    相关文章

      网友评论

          本文标题:MySQL之:函数

          本文链接:https://www.haomeiwen.com/subject/vbbjyhtx.html