MySQL之变量
变量:在c语言,c++中我们都认识过,MySQL中也有变量.
在mysql中主要有以下三种
1.系统变量
系统变量是 MySQL 服务器内置的变量,用来控制数据库的运行行为和配置,比如是否自动提交、最大连接数、字符集等。
2.用户自定义变量
用户自定义变量是 MySQL 会话级变量,使用时以@开头(如@name),不需要事先声明类型,也不属于任何存储过程。
3.局部变量
局部变量只在存储过程、函数或触发器的范围内有效。需要使用 DECLARE 声明,作用域的范围在声
明的BEGIN ... END 块内。
系统变量
查看系统变量
show variables;模糊匹配寻找我们想要的系统变量
like
临时修改系统变量
set global 系统变量名的操作;
SET GLOBAL autocommit=0;'
尽量不要修改系统变量
用户自定义变量
@变量名
变量的赋值
1.set 自定义变量 := 数值;
SET @my_name:='pineapple';2.在select语句中赋值变量
3.将select语句完成的结果给变量
eg:从学生表中查询编号为1的学生学号并赋值给sno变量
eg:查询学生表中的总记录数并赋值给conut变量
eg:访问一个未赋值的变量,返回NULL
注意:mysql中赋值是=,判断是否相等也是=,所以为了更好的阅读我们在赋值操作中偏向于用:=
局部变量
局部变量的声明
局部变量的赋值
用户自定义变量的赋值相似,不做过多赘述.
-- 方式一 SET var_name = 值; -- 方式二 【推荐】 SET var_name := 值; -- 方式三:查询结果赋值给自定义变量 SELECT 列名 INTO var_name FROM 表名 WHERE ...;eg::在存储过程中定义局部变量记录学生表的总记录数
delimiter // CREATE PROCEDURE p4() BEGIN DECLARE my_count int ; SELECT count(*) into my_count from prim_student ; SELECT my_count; END // delimiter ; CALL p4();注意:用户自定义变量在会话结束时失效,而局部变量在存储过程或函数结束时失效。这一点有点像c++中的全局变量和局部变量的味道
