变量
- mysql变量可分为两大类,即系统变量和用户变量。
- 但根据实际应用又被细化为四种类型局部变量用户变量会话变量全局变量
用户变量
- mysql用户变量,mysql中用户变量不用提前申明,在用的时候直接用“@变量名”使用就可以了,其作用域为当前连接。
- 第一种用法,使用set时可以用“=”或“:=”两种赋值符号赋值 set @age=19; set @age:=20;
- 第二种用法,使用select时必须用“:=”赋值符号赋值SELECT @name:=NAME FROM student WHERE stuid = 101
会话变量
- mysql会话变量,服务器为每个连接的客户端维护一系列会话变量,其作用域仅限于当前连接,即每个连接中的会话变量是独立的。
- 常用操作-- 显示所有的会话变量 show session variables; show session variables like '%auto%'; -- 修改会话变量 set @@session.autocommit = 1 -- 查看会话变量 select @@session.autocommit
全局变量
mysql全局变量,全局变量影响服务器整体操作,当服务启动时,它将所有全局变量初始化为默认值。要想更改全局变量,必须具有super权限。其作用域为server的整个生命周期。
-- 显示所有的全局变量 show global variables; show global variables like '%autocommit%'; -- 设置全局变量的值 set @@global.autocommit=0; -- 查看全局变量值 select @@global.autocommit;
局部变量
mysql局部变量,只能用在begin/end语句块中,比如存储过程中的begin/end语句块,其作用域仅限于该语句块。
- 声明语法:DECLARE var_name [, var_name]... data_type [ DEFAULT value ]; - var_name为局部变量的名称; - DEFAULT value子句指定指定变量的默认值
DECLARE id INT;--仅声明一个变量 DECLARE age INT DEFAULT 18; --声明int类型的age,值为18 DECLARE nation,city varchar(50);--声明两个变量 DECLARE weixin,qq varchar(20) default '123456';--声明两个变量值为123456
- 赋值方式: - 语法1:SET var_name=expr [, var_name=expr]...;
DECLARE var1,