MySQL之变量

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++中的全局变量和局部变量的味道