05-01-变量

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lucky9322/article/details/85775836

变量

MySQL本质是一种编程语言,需要很多变量来保存数据。MySQL中很多的属性控制都是通过MySQL中固有的变量来实现的

系统变量

系统内部定义的变量,系统变量针对所有用户(MySQL客户端)有效。

查看系统所有变量:show variables [like 'pattern'];

MySQL允许用户使用select查询变量的数据值(系统变量)

基本语法:select @@变量名;

在这里插入图片描述

修改系统变量:分为两种修改方式

  1. 局部修改(会话级别):只针对当前自己客户端当次连接有效

    基本语法:set 变量名=值;

  2. 全局修改:针对所有的客户端,“所有时刻”都有效,修改方式有以下两种形式。需要注意的是全局修改之后的系统变量,对当前客户端无效,需要重新打开新的客户端

    基本语法:

    • set global 变量名=值;
    • set @@global.变量名=值;

会话变量

会话变量也称为用户变量,会话变量跟MySQL客户端是绑定的,设置的变量,只对当前用户使用的客户端生效

定义用户变量:set @变量名=值;

在这里插入图片描述

MySQL中因为没有比较符合==,所以是用=代替比较符号:这样在赋值的时候有时候会报错。MySQL为了避免系统分不清赋值还是比较:特定增加了一个变量的赋值符号::=

set @变量名 := 值;

在这里插入图片描述

MySQL是专门存储数据的:允许将数据从表中取出来存储到变量中:查询到的数据必须只能是一行数据。方式有以下两种

  1. 赋值且查看赋值过程:

    select @变量1 := 字段1, @变量2 := 字段2 from 数据表 [其他选项];

    这里需要注意只能使用:= 如果使用=系统会当作比较符号来处理。

    在这里插入图片描述
    在这里插入图片描述

  2. 只赋值不查看过程,

    select 字段1,字段2... from 数据表 [其他选项] into @变量1,@变量2...;

    在这里插入图片描述

查看自定义变量

select @变量名;

局部变量

作用范围在beginend语句块之间。在该语句块里设置的变量,使用declare关键字用于定义局部变量。

  1. 局部变量是使用declare关键字声明
  2. 局部变量出现在begin``end之间(大型语句块中使用:函数、存储过程、触发器)
  3. 基本语法:declare 变量名 数据类型 [属性]

猜你喜欢

转载自blog.csdn.net/lucky9322/article/details/85775836
今日推荐