• mysql的变量


    MySQL 中变量分为三种类型 : 系统变量、用户定义变量、局部变量。

    系统变量

    系统变量 是 MySQL 服务器提供,不是用户定义的,属于服务器层面。分为全局变量( GLOBAL )、会话变量(SESSION )。

    查看系统变量

    • SHOW [ SESSION | GLOBAL ] VARIABLES ; -- 查看所有系统变量
    • SHOW [ SESSION | GLOBAL ] VARIABLES LIKE '......'; -- 可以通过LIKE模糊匹配式查找变量
    • SELECT @@[SESSION | GLOBAL] 系统变量名; -- 查看指定变量的值 
    1. -- 查看系统变量
    2. show session variables ; -- 查看所有会话变量
    3. show session variables like 'auto%'; -- 查看会话变量auto开头变量
    4. show global variables like 'auto%'; -- 查看全局变量auto开头变量
    5. select @@global.autocommit; -- 查看global.autocommit变量
    6. select @@session.autocommit; -- 查看session.autocommit变量

    设置系统变量

    • SET [ SESSION | GLOBAL ] 系统变量名 = 值 ;
    • SET @@[SESSION | GLOBAL]系统变量名 = 值 ;
    1. -- 设置系统变量
    2. set session autocommit = 1; -- 设置autocommit
    3. set global autocommit = 0;
    4. select @@global.autocommit;
    A. 全局变量 (GLOBAL): 全局变量针对于所有的会话。
    B. 会话变量 (SESSION): 会话变量针对于单个会话,在另外一个会话窗口就不生效了。

     mysql服务重新启动之后,所设置的全局参数会失效,要想不失效,可以在 /etc/my.cnf 中配置。

    用户定义变量

    用户定义变量 是用户根据需要自己定义的变量,用户变量不用提前声明,在用的时候直接用 "@ 变量名" 使用就可以。其作用域为当前连接。

    赋值

    赋值时,可以使用 = ,也可以使用 :=  用户定义的变量无需对其进行声明或初始化,只不过获取到的值为NULL

    • SET @var_name = expr [, @var_name = expr] ... ;
    • SET @var_name := expr [, @var_name := expr] ... ;
    • SELECT @var_name := expr [, @var_name := expr] ... ;
    • SELECT 字段名 INTO @var_name FROM 表名;
    1. -- 赋值
    2. set @myname = 'myname'; -- 赋值字符串
    3. set @myage := 18; -- 赋值数值
    4. set @mygender := '男',@myhobby := 'python'; -- 多变量赋值

    使用

    • SELECT @var_name ;
    select @myname,@myage,@mygender,@myhobby;

     局部变量

    局部变量 是根据需要定义的在局部生效的变量,访问之前,需要 DECLARE 声明。可用作存储过程内的局部变量和输入参数,局部变量的范围是在其内声明的BEGIN ... END 块。

    声明

    变量类型就是数据库字段类型:INTBIGINTCHARVARCHARDATETIME等。

    • DECLARE 变量名 变量类型 [DEFAULT ... ] ;  
    1. -- 声明局部变量 - declare
    2. -- 赋值
    3. create procedure p2()
    4. begin
    5. declare stu_count int default 0;
    6. select count(*) into stu_count from stu;
    7. select stu_count;
    8. end;
    9. call p2();

     赋值

    • SET 变量名 = 值 ;
    • SET 变量名 := 值 ;
    • SELECT 字段名 INTO 变量名 FROM 表名 ... ;

     

     

  • 相关阅读:
    2023年【T电梯修理】考试题及T电梯修理考试报名
    c++中指针,堆栈内存分配重要概念理解汇总(实例注释)
    软件项目管理第一章---项目管理概念
    再出发!中国数据存储产业在AI时代突围
    9月15日,每日信息差
    认识数据库
    森林防火(资源监管)“空天地人”四位一体监测系统方案
    【设备布局】基于粒子群优化算法的设备布局设计研究(Matlab代码实现)
    AS文件名或扩展名太长问题
    springmvc
  • 原文地址:https://blog.csdn.net/qq_63431773/article/details/132951086