zoukankan      html  css  js  c++  java
  • 存储过程、函数和事件

    存储过程、存储函数、事件

    函数就是一些功能模块,当想要完成某个功能,就可以调用该函数来实现。

    存储过程:

    一个存储过程就是一个功能模块。

    语法:创建:

    delimiter

    create procedure 名字(参数列表)

    begin

    sql语句;

    end

    delimiter;

    调用:call 名字();

    参数列表:参数模式;参数名;参数类型

    参数模式:

    in:改参数可以作为输入

    out:改参数可以作为输出

    inout:又可以作为输入又可以作为输出

    删除存储过程:drop procedure 存储过程名;

    查看存储过程:show create procedure 存储过程名;

    存储函数

    区别:

    存储过程:可以有0个返回值,也可以有多个返回值

    函数:有且只有一个返回值

    语法:

    create function 函数名(参数列表) returns 返回类型

    begin

    函数体

    end

    参数列表包含两部分:参数名和参数列表

    函数体一定有return语句,没有放在函数体最后也不报错,但是不建议。

    调用语法:select 函数名(参数列表)

    例子:

    DELIMITER $; CREATE FUNCTION myf1() RETURNS INT BEGIN DECLARE c INT DEFAULT 0; SELECT COUNT(*) INTO c FROM emp; RETURN c; END $;

    查看函数: show create function 函数名;

    删除函数:drop function 函数名;

    判断与循环语句

    if语句:

    if 判断 then sql语句1;

    else if 判断2 then sql语句2;

    .....

    else sql语句n;

    end if;

     

    case语句:

    case xx

    when 值1 then sql语句1;

    when 值n then sql语句n;

    else sql语句;

    end case;

     

    循环:

    1.while 条件 do

    SQL语句;

    end while;

    如果条件为真,循环执行do和end while语句之间的语句

     

    2.repeat

    SQL语句;

    until 条件(没有分号)

    end repaat;

    until后面的条件不成立就不断循环

     

    3.标签:loop

    sql语句;

    if 条件 then leave 标签;

    end if;

    end loop 标签;

    自身没有退出循环的条件,如果想要跳出循环,需要借助if语句,满足某种条件利用leave跳出;

     

    查看存储过程:show procedure status;

    查看存储过程具体内容:show create procedure 存储过程名;

    删除存储过程:drop procedure 名字;

    事件

    计划任务

    首次查看是否开起了事件任务:show variables like ‘%event_sch%’;

    开启事件:set global event_scheduler=1;

    创建事件的语法:

    create event 事件名 on schedule 间隔(例如:every 10 minutes(每隔十分钟))

    starts ‘时间’

    ends ‘时间’

    do sql语句;

    从开始时间到结束时间,每间隔多次长时间,执行一吃sql语句。

    当前时间:current_timestamp+interval 时间;什么时间以后开始执行;

    查看当前系统有哪些事件:show events;

    查看事件具体信息:show create event 事件名;

    删除一个事件:drop event 事件名;

  • 相关阅读:
    go微服务框架kratos学习笔记十(熔断器)
    go微服务框架kratos学习笔记九(kratos 全链路追踪 zipkin)
    go微服务框架kratos学习笔记八 (kratos的依赖注入)
    go微服务框架kratos学习笔记七(kratos warden 负载均衡 balancer)
    编译原理之语法分析-自下而上分析(四)
    编译原理之语法分析-自下而上分析(三)
    编译原理之语法分析-自下而上分析(二)
    编译原理之语法分析-自下而上分析(一)
    TreeSet的两种实现方法:Comparable和Comparator(Java比较器)
    JavaWeb学习之JSP(三) EL表达式
  • 原文地址:https://www.cnblogs.com/susexuexi011/p/14483077.html
Copyright © 2011-2022 走看看