• mysql数据库(10)--变量、存储过程和函数


    一、系统变量(系统提供,不用自定义)

    1、分类

    • 全局变量:服务器层面上的,必须拥有super权限才能为系统变量赋值,作用域为整个服务器,即针对所有连接(会话)有效
    • 会话变量:服务器为每一个连接的客户端都提供了系统变量,作用域为当前连接(会话)

    2、查看系统变量

    ①查看系统变量

    show [global|session] variables like ' ';        # 默认查看的session变量

    ②查看指定系统变量的值

    select @@[global|session].变量名;         # 默认查看的session变量    

    ③为系统变量赋值

    【方式一】

    set [global|session] 变量名=值;

    【方式二】

    set @@global.变量名 = 值;

    set @@变量名 = 值;

    二、自定义变量

    1、用户变量

    • 作用域 :仅针对当前连接(会话)有效
    • 位置:begin end里面,也可以在外面

    ①声明并赋值

      set @变量名 = 值

           set @变量名:= 值

      select @变量名:= 值

    ②更新值

    【方式一】

      set @变量名 = 值

           set @变量名:= 值

      select @变量名:= 值

    【方式二】

      select xx into @变量名 from 表;      # 值来自于表中的字段

    ③使用

    select @变量名

    2、局部变量

    • 作用域:仅仅在定义的begin end中有效
    • 位置:只能放在begin end中,而且只能放在第一句

    ①声明

    declare 变量名 类型 [default 值]

    ②赋值或更新

    【方式一】

      set 变量名 = 值

           set 变量名:= 值

      select @变量名:= 值

    【方式二】

      select xx into 变量名 from 表;      # 值来自于表中的字段

    ③使用

      select 变量名

    三、存储过程

    将一组用于完成特定功能的逻辑语句包装起来,对外暴露名字即可

    1、创建

    1 create procedure 存储过程名(参数模式 参数名 参数类型)
    2 begin
    3            存储过程体
    4 end

    【注意】

    ①参数模式:in   out     inout

    ②存储过程体中的每一条sql语句都需要使用;结尾

    2、调用

    call 存储过程名(实参列表)

    ①调用in模式下的参数:  call sp(值)

    ②调用out模式下的参数: set @name; call sp(@name); select @name;

    ③调用inout模式下的参数: set @name = 值; call sp(@name); select @name;

    3、查看

    show create procedure 存储过程名;

    4、删除

    drop procedure 存储过程名;

    四、函数

    将一组用于完成特定功能的逻辑语句包装起来,对外暴露名字即可  --  有返回值

    1、创建

    1 create function 函数名(参数名 参数类型) returns  返回类型
    2 begin
    3       函数体
    4 end

    【注意】

    ①函数体中必须要有return语句

    2、调用

    select 函数名(实参列表);

    3、查看

    show create function 函数名;

    4、删除

    drop function 函数名;

  • 相关阅读:
    博客开篇--别让自己在临终前后悔
    预言帖,WP7迟早有一天会失败
    sql server 列值转列名的问题
    “《面对面做好每一天》中国短道速滑教练李琰”读后感
    原型要做到什么程度
    不得不承认我的高度不够,通过项目提升了.
    项目进度很慢
    原型确认后准备开发(1)
    邮件发送打印机更改打印机连接的通知
    onclick事件中加href
  • 原文地址:https://www.cnblogs.com/yif930916/p/15040111.html
Copyright © 2020-2023  润新知