MySQL和数据库系列文章目录
【MySQL和数据库】MySQL & database 第一章:数据库的安装与卸载
【MySQL和数据库】MySQL & database 第二章:数据库与MySQL的基本概述
【MySQL和数据库】MySQL & database 第三章:DQL学习(主要是记录的查询)
【MySQL和数据库】MySQL & database 第四章:DML学习(主要是对记录的增删改)
【MySQL和数据库】MySQL & database 第五章:DDL学习(主要是对库、表、字段的增删改)
【MySQL和数据库】MySQL & database 第六章:TCL学习(主要是针对事务的控制)
【MySQL和数据库】MySQL & database 第七章:视图的学习
【MySQL和数据库】MySQL & database 第八章:MySQL中的变量
【MySQL和数据库】MySQL & database 第九章:存储过程的学习
【MySQL和数据库】MySQL & database 第十章:函数的学习
【MySQL和数据库】MySQL & database 第十一章:流程控制结构
变量的分类
- 系统变量:
- 全局变量;
- 会话变量;
- 自定义变量:
- 用户变量;
- 局部变量;
系统变量
-
说明:变量由系统提供的,不是用户定义,属于服务器层面;
注意:如果不说明是全局变量还是会话变量,则默认是会话变量;
-
语法:
-
查看所有的系统变量
show global variables; show session variables;
-
查看满足条件的部分系统变量
show global variables like '%char%'; show session variables like '%char%';
-
查看指定的某个系统变量的值
select @@global.系统变量名; select @@session.系统变量名;
-
为某个系统变量赋值
方式一: set global 系统变量名 = 值; set session 系统变量名 = 值; 方式二: set @@global.系统变量名 = 值; set @@session.系统变量名 = 值;
-
全局变量
-
作用域:服务器每次启动将为所有的全局变量赋初始值,针对所有的会话(连接)有效,但不能跨重启;
-
查看所有的全局变量
show global variables;
-
查看部分的全局变量
show global variables like '%char%';
-
查看指定的全局变量的值
select @@global.全局变量名; select @@全局变量名;
-
为某个指定的全局变量赋值
set @@global.全局变量名 = 新值;
会话变量
-
作用域:仅仅针对于当前会话(连接)有效;
-
查看所有的会话变量
show variables; show session variables;
-
查看部分的会话变量
show variables like '%char%'; show session variables like '%char%';
-
查看指定的某个会话变量
select @@会话变量名; select @@session.会话变量名;
-
为某个会话变量赋值
方式一: set @@会话变量名 = 新值; 方式二: set session 会话变量名 = 新值;
自定义变量
-
说明:变量是用户自定义的;
-
使用步骤:声明,赋值,使用(查看、比较、运算等)
-
对比用户变量和局部变量
作用域 定义和使用的位置 语法 用户变量 当前会话 会话中的任何位置 必须加@,不用限定类型 局部变量 begin和end中 只能在begin和end中的第一句话 一般不加@,需要限定类型
用户变量
-
作用域:针对于当前会话(连接)有效,等同会话变量的作用域;
-
注意:用户变量可以放在任何地方,可以在begin和end里面,也可以在外面;
-
声明并初始化
set @用户变量名 = 值; set @用户变量名 := 值; select @用户变量名 := 值;
-
赋值(更新用户变量的值)
方式一: set @用户变量名 = 值; set @用户变量名 := 值; select @用户变量名 := 值; 方式二: select 字段 into @用户变量名 from 表;
-
使用(查看用户变量的值)
select @用户变量名;
局部变量
-
作用域:仅仅在定义它的begin和end里面有效
-
注意:应用在begin和end中的第一句话;
-
声明
declare 变量名 类型; declare 变量名 类型 default 值;
-
赋值
方式一: set 局部变量名 = 值; set 局部变量名 := 值; select @局部变量名 := 值; 方式二: select 字段 into 局部变量名 from 表;
-
使用
select 局部变量名;