十三:变量、函数、存储过程、循环控制结构

一:系统变量:变量由系统提供,不用自定义

    全局变量:

      服务器层面上的,必须拥有super权限才可以为系统变量复制作用域为整个服务器,也是针对于所有连接(会话)有效

    会话变量:

      

二:自定义变量

    用户变量

        作用域:针对当前连接(回话)生效

        位置:being end 里面,也可以放在外面,但是放在外面没有效果

    变量声明并赋值或者更新

        set @变量名=值;

        set @变量名:=值;

        select @变量名:=值

      方式二:

        select **** into @变量

    局部变量

      作用域:仅仅在定义它的begin end中有效

      1.声明:

        declare 变量名 类型 【default 值】

      2.赋值或者更新

        方式一:set 变量名=值;

            set 变量名:=值;

            set @变量名:=值;

        方式二

          select xx into 变量名 from 表;

二、存储过程和函数

  都类似与java中的方法,

  好处  1.提高重用性  2.sql语句简单  3.减少了和数据库服务连接的次数提高了效率

  2.1 创建

      create procedure 存储过程名(参数模式 参数名 参数类型)

      begin

          存储过程体

      end

      注意:参数模式:in、out、inout,其中in可以省略,存储过程体的每一条语句都需要用分号结尾

  2.2 调用

    call 存储过程名

    2.2.1 调用in模式的参数:call sql(‘值’)

    2.2.2 调用out模式参数: set @name; call sql(‘值’, @name);select @name;

    2.2.3 调用inout模式的参数:set @name=值;call sql(@name);select @name;   

  2.3 查看

    show create procedure 存储过程名;

  2.4 删除

    drop procedure 存储过程名;

三、函数

  3.1 创建

    creat function 函数名(参数名 参数类型) returns 返回类型

    degin

      函数体

    end

    注意函数体红肯定要有return语句的

  3.2调用

    select 函数名(实参列表)

  3.3查看

    show create function 函数名;

  3.4 删除

    drop function 函数名

四:

  if函数:

    if (条件,值1,值2)

  if语句

  if  (条件 )then ;

  elseif 条件 then;

  elseif 条件 then;

  else;

  

原文地址:https://www.cnblogs.com/BookMiki/p/14175187.html