在 MySQL 中变量分为三种类型 : 系统变量、用户定义变量、局部变量。
- -- 查看系统变量
- show session variables ; -- 查看所有会话变量
- show session variables like 'auto%'; -- 查看会话变量auto开头变量
- show global variables like 'auto%'; -- 查看全局变量auto开头变量
- select @@global.autocommit; -- 查看global.autocommit变量
- select @@session.autocommit; -- 查看session.autocommit变量
-
- -- 设置系统变量
- set session autocommit = 1; -- 设置autocommit
- set global autocommit = 0;
- select @@global.autocommit;
A. 全局变量 (GLOBAL): 全局变量针对于所有的会话。B. 会话变量 (SESSION): 会话变量针对于单个会话,在另外一个会话窗口就不生效了。mysql服务重新启动之后,所设置的全局参数会失效,要想不失效,可以在 /etc/my.cnf 中配置。
赋值时,可以使用 = ,也可以使用 := 。 用户定义的变量无需对其进行声明或初始化,只不过获取到的值为NULL。
- -- 赋值
- set @myname = 'myname'; -- 赋值字符串
- set @myage := 18; -- 赋值数值
- set @mygender := '男',@myhobby := 'python'; -- 多变量赋值
select @myname,@myage,@mygender,@myhobby;
变量类型就是数据库字段类型:INT、BIGINT、CHAR、VARCHAR、DATE、TIME等。
- -- 声明局部变量 - declare
- -- 赋值
- create procedure p2()
- begin
- declare stu_count int default 0;
- select count(*) into stu_count from stu;
- select stu_count;
- end;
- call p2();
