zoukankan      html  css  js  c++  java
  • MySQL/mariadb知识点——函数

    函数

    函数,就是将一段代码封装到一个结构中,在需要执行该段代码的时候,直接调用该结构(函数)执行即可。此操作,实现了代码的复用。在 MySQL 中,函数有两种,分别为:系统函数和自定义函数。

    1、系统函数

    顾名思义,系统函数就是系统定义好的函数,在需要的时候,我们直接调用即可。

    任何函数都有返回值(对于空函数,我们就认为其返回值为),而且在 MySQL 中任何有返回值的操作都是通过select来操作的,因此 MySQL 的函数调用就是通过select来实现的。

    参考官方文档:https://dev.mysql.com/doc/refman/5.7/en/func-op-summary-ref.html

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

    自定义函数保存在mysql.proc表中

    • 查看UDF列表

    SHOW FUNCTIOIN STATUS;
    • 查看UDF定义

    SHOW CREATE FUNCTION function_name
    • 删除UDF 

    DROP FUNCTION function_name
    • 调用自定义函数语法 
    SELECT function_name(parameter_value,...)
    • 为变量赋值
    SET parameter_name = value[,parameter_name = value...]
    • 查看变量

    SELECT INTO parameter_name

    示例1:无参UDF

    MariaDB [testdb]> CREATE FUNCTION simpleFun() RETURNS VARCHAR(20) RETURN "Hello World!“;
    

    示例2:有参数UDF 

    MariaDB [testdb]> DELIMITER //  #修改结束符为//
    MariaDB [testdb]>CREATE FUNCTION deleteById(uid SMALLINT UNSIGNED) RETURNS VARCHAR(20)
        -> BEGIN
        ->DELETE FROM students WHERE stuid = uid;
        -> RETURN (SELECT COUNT(uid) FROM students);
        -> END//
    Query OK, 0 rows affected (0.01 sec)
    MariaDB [testdb]> DELIMITER ;  #定义完函数后再修改回来

    示例3:

    自定义函数中定义局部变量语法:

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

    说明:局部变量的作用范围是在BEGIN...END程序中,而且定义局部变量语句必须在BEGIN...END的第一行定义

    MariaDB [testdb]> DELIMITER //  #修改结束符为//
    MariaDB [testdb]> 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//
    Query OK, 0 rows affected (0.01 sec)
    MariaDB [testdb]> DELIMITER ;  #定义完函数后再修改回来
    MariaDB [testdb]> SELECT addTwoNumber(8,9);  #调用UDF求和
    +-------------------+
    | addTwoNumber(8,9) |
    +-------------------+
    |                17 |
    +-------------------+

    查看函数

    查看函数,基本语法为:

    SHOW FUNCTION STATUS;
    

    查看函数定义 

    SHOW CREATE FUNCTION function_name
    

      

  • 相关阅读:
    T3984 迷宫问题 TJ
    P1091 合唱队形 TJ
    P4549 【模板】裴蜀定理
    牛客NOIP集训一S 牛牛的方程式 TJ
    P3387 【模板】缩点 TJ
    [数字图像处理](三)对数变换
    [数字图像处理](四)直方图均衡化[HE]算法
    [ACM]KMP算法的两种写法,从0开始,从1开始
    [计算几何]补题
    [Servlet]IJ idea搭建Servlet初步
  • 原文地址:https://www.cnblogs.com/Gmiaomiao/p/9207561.html
Copyright © 2011-2022 走看看