声明:此MySQL基础学习源自尚硅谷。(推荐)b站官方链接:https://www.bilibili.com/video/BV1xW411u7ax?p=1
变量
| 系统变量: |
| 全局变量 |
| 会话变量 |
| |
| 自定义变量: |
| 用户变量 |
| 局部变量 |
| |
variables /ˈveə riə bl z/ 变量
1.系统变量
| 说明:变量由系统提供,不是用户定义,属于服务器层面。 |
1.查看所有的系统变量
| show global variables; # 查看所有全局变量 |
| show 【session】 variables; # 查看所有会话变量,默认为session |
2.查看满足条件的部分系统变量
| show global variables like '%char%'; # 查看满足条件的字符集 |
| show session variables like '%char%'; # 查看满足条件的字符集 |
3.查看指定的某个系统变量的值
| select @@系统变量名; # session变量 |
| select @@global.系统变量名; # 全局变量 |
4.为某个系统变量赋值
| 方式一: |
| set global 系统变量名 = 值; # 全局变量级别 |
| set session 系统变量名 = 值; # session会话级别,session默认 |
| |
| 方式二: |
| set @@global.系统变量名 = 值; |
| set @@session.系统变量名 = 值; |
注意:
| 如果是全局级别,则需要加global,如果是会话级别,则需要加session,如果不写,默认是session |
全局变量作用域
| 全局变量属于每个连接共有的变量 |
| 服务器每次启动将为所有的全局变量赋初始值,针对于所有的会话(连接)有效,但不能跨重启,就是即使修改了全局变量值,服务器重启后,初始值是服务器配置文件中的值。 |
| 若修改服务器重启后的全局变量值,需要修改服务器的配置文件中的值。 |
会话变量作用域
2.自定义变量
| 说明:变量是用户自定义的,不是系统提供的 |
| 使用步骤: |
| 声明 |
| 赋值 |
| 使用(查看、比较、运算等) |
| |
1.用户变量
| 作用域:针对于当前会话(连接)有效,同会话变量的作用域。 |
| |
| 应用在任何地方,也就是begin end里面或begin end外面 |
①声明并初始化
| # 三种方式: |
| ①set @用户变量名=值; |
| ②set @用户变量名:=值; |
| ③select @用户变量名 := 值; |
②赋值(更新用户变量的值)
| 方式一:通过set 或 select |
| ①set @用户变量名=值; |
| ②set @用户变量名:=值; |
| ③select @用户变量名 := 值; |
| |
| 方式二:通过select into |
| select 字段 into 用户变量名 from 表; |
③使用(查看用户变量的值)
案例:
| |
| set @name='join'; # 弱类型,赋给什么类型的值,变量就是什么类型 |
| set @name=100; |
| set @count=1; |
| |
| select count(*) into @count from employees; # 查询employees表的总数赋给变量count |
2.局部变量
| 作用域:仅仅在定义它的begin end中有效 |
| |
| 应用在begin end 中的第一句 |
①声明
| declare 变量名 类型; |
| declare 变量名 类型 default 值; # 值类型与定义类型一致或兼容 |
②赋值
| 方式一:通过set 或 select |
| ①set 局部变量名=值; # 不加 @ 符 |
| ②set 局部变量名:=值; |
| ③select @局部变量名 := 值; # 需要加 @ 符 |
| |
| 方式二:通过select into |
| select 字段 into 局部变量名 from 表; |
③使用(查看局部变量的值)
用户变量和局部变量对比
|
作用域 |
定义和使用的位置 |
语法 |
用户变量 |
当前会话 |
会话中的任何地方 |
必须加@符,不用限定类型 |
局部变量 |
begin end中 |
只能在begin end中,且为第一句话 |
一般不用加@符,需要限定类型 |
案例:
| 1.用户变量 |
| set @m=1; |
| set @n=2; |
| set @sum= @m+@n; |
| select @sum; # 3 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步