MYSQL 变量

mysql变量分为三种类型:系统变量,用户定义变量,局部变量。

一、系统变量

系统变量是mysql服务器提供,不是用户定义,属于服务器层面,分为全局变量(global)和会话变量(session),不指定变量类型默认session会话变量

-- 变量:系统变量
-- 查看系统变量
show session variables;  -- 查看所有会话系统变量
show global variables;  -- 查看所有全局系统变量
show  global variables like 'auto%'; -- 可以通过like模糊匹配方式查找变量
show  session variables like 'auto%';
select @@global.autocommit; -- 查看指定变量的值
select @@session.autocommit;

-- 设置系统变量
set session autocommit =1; -- 系统变量名 = 值
set global autocommit =1;

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

二、用户定义变量

无需声明,其作用域为当前连接。

-- 变量:用户定义的变量
-- 赋值
-- 方式一
set @myname =  'itcast'; -- @变量名 无需声明,直接使用
set @myage :=10; -- 可以使用= 或者:=
set @mygender :='男',@myhobby :='mysql';

-- 方式二
select @mycolor :='red';
select count(*)  into @mycount from tb_user;
-- mysql中的赋值与比较运算符都是 =  故推荐赋值使用 :=

-- 使用
select @myname,@myage,@mygender,@myhobby;

select @mycolor,@mycount;

select @abc;-- 用户定义的变量无需声明或者初始化,只是获取的值为null

三、局部变量

访问之前需要declare声明,可用作存储过程内的局部变量和输入参数,局部变量的范文是在其内声明的begin ... end块。

-- 变量:局部变量
-- 声明 declare
-- 赋值
create procedure p2()
begin
    declare stu_count int default 0;-- 声明 declare 变量名 变量类型 [default ...]
    set stu_count :=100; -- 赋值
    select count(*) into stu_count from student;-- 赋值 select 字段名 into 变量名 from 表明 ...
    select stu_count;
end;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值