MySQL基础--变量

变量 常用命令:

查看所有的系统变量:

show 【global | session】 variables;

查看指定条件的系统变量:

show 【global | session】

variables like '%char%'

查看某个系统变量:

select @@【globla | sesssion】.系统变量名

 

 

为某个系统变量赋值:

set 【global | session】

系统变量名=值

set @@【global | session】.系统变量名=值

用户变量名赋值和更新:

set @用户变量名=值;

set @用户变量名:=值;

select @用户变量名:=值;

 

select 字段名 into 用户变量名from 表名

查看用户变量名: 

select @用户变量名;

 

局部变量:

declare 变量名 类型

set 局部变量名=值

select 局部变量名

   

  1. 系统变量:
      说明: 变量由系统提供的,不是用户定义,属于服务器层面
           注意:
           如果是全局级别,则需要加dOBAL,如果是会话级别,则需要加SESSION,如果不写,则默认SESSION

    • 全 局变量(globlal.*)
      作用域:服务器每次启动将为所有的全局变量赋初始值,针对于所有的会话(连接)有效,但不能跨重启

    • 会话变量作用域(session.)

      variables系统变量,默认只能在本会话中起作用

    • 说明:变量由系统提供的,不用自定义
      语法:
      ①查看系统变量
      show [globa1|session ] variables like ”;如果没有显式声明globa1还是session,则默认是session
      ②查看指定的系统变量的值
      select @@ [global|session] . 变量名;如果没有显式声明globa1还是session,则默认是session
      ③为系统变量赋值
      方式-:
      set [globallsession ]变量名=值;如果没有显式声明global1还是session, 则默认是session
      方式二:
      set Qzlobal.变量名=值;
      set @0变量名=值;

  2. 自定义变量:

     

    • 说明:变量是用户自定义的,不是由系统的
      使用步骤:
      声明
      赋值
      使用(查看、比较、运算等)

    • 作用域:针对于当前会话(连接)|

       

    • 声明并初始化:

        set 用户变量名=值;

        set 用户变量名:=值;

        select 用户变量名:=值;

       

    • 赋值(更新变量):

        set 用户变量名=值;

        set 用户变量名:=值;

        select 用户变量名:=值;

      select 字段 into 变量名 from 表;

    • 作用域:针对于当前连接(会话)生效
      位置: begin end里面, 也可以放在外面
      使用:
      ①声明并赋值:
      set变量名=值;或
      set
      @变量名:=值;或
      select
      变量名:=值;

    • ②更新值
      方式一:
      set变量名=值;或
      set变量名:=值;或
      select变量名:=值;
      方式二:
      select xx into @变量名from 表;

    • ③使用
      select变量名; .

  3.  局部变量

     

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

      应该在begin end 中的第一句话!!

       

    • ①声明
      DECLARE变量名类型;
      DECLARE变量名类型DEFAULT 值;

    • ②赋值
      方式一:通过SET或SELECT
      SET局部变量名=值;或
      SET局部变量名:=值;或
      SELECT Q局部变量名:=值;
      方式二:通过SELECT INTo
      SELECT字段INTO 局部变量名
      FROM表;

    • ③使用
      SELECT局部变量名;

    • #系统变量的使用:
      show session variables;
      show variables;
      show variables like '%char%';
      select @@session.autocommit;
      set autocommit=0;
      set @@session.autocommit=1;

      #用户变量的使用:
      set @one=1;

      set @one=2;
      set @one:=3;
      select @one:=4;
      select 5 into @one;

      select @one;


      #局部变量的使用
      declare $
      create procedure test_jb()
      begin
      declare i int default 1;
      set i=1;
      set i:=2;
      select 4 into i;
      select i;
      end $

  作用域  定义和使用位置 语法
用户变量 当前会话 会话中的任何位置 必须加@符号,不用限定类型
局部变量 BEGIN END 中 只能在BEGIN END 中,且只能是是第一句 一般不用加@符号,需要限定类型
posted @ 2021-05-11 11:58  张紫韩  阅读(106)  评论(0编辑  收藏  举报