zoukankan      html  css  js  c++  java
  • 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 函数名;

  • 相关阅读:
    grunt in webstorm
    10+ Best Responsive HTML5 AngularJS Templates
    响应式布局
    responsive grid
    responsive layout
    js event bubble and capturing
    Understanding Service Types
    To add private variable to this Javascript literal object
    Centering HTML elements larger than their parents
    java5 新特性
  • 原文地址:https://www.cnblogs.com/yif930916/p/15040111.html
Copyright © 2011-2022 走看看