變量
系統變量:
全局變量
會話變量
自定義變量:
用戶變量
局部變量
一:系統變量
**說明:**變量由系統提供,不是用戶定義,屬於服務器層面。
注意:
如果是全局級別,則需要加global,如果是會話級別,則需要加session,如果不寫,則默認session
使用的語法:
查看所有的系統變量
SHOW GLOBAL | SESSION VARIABLES;
查看滿足條件的部分系統變量
SHOW GLOBAL | SESSION VARIABLES LIKE '%char%';
查看指定的某個系統變量的值
select @@global | session 系統變量名;
爲某個系統變量賦值
#方式一
set global | session 系統變量名=值;
#方式二
set @@global | session 系統變量嗎=值;
二:全局變量
作用域:服務器每次啓動將爲所有的全局變量賦初始值,針對所有的會話(連接)有效,但不能跨重啓
查看所有的全局變量
SHOW GLOBAL VARIABLES;
查看部分的全局變量
SHOW GLOBAL VARIABLES LIKE '%char%';
查看指定的全局變量的值
SELECT
@@GLOBAL.autocommit;
SELECT
@@tx_isolation;
爲某個指定的全局變量賦值
SET @@GLOBAL.autocommit = 0;
三:會話變量
作用域:僅僅針對當前會話(連接)有效
查看所有的會話變量
SHOW VARIABLES;
SHOW SESSION VARIABLES;
查看部分的會話變量
SHOW VARIABLES LIKE '%char%';
SHOW SESSION VARIABLES LIKE '%char%';
查看指定的某個會話變量
SELECT
@@tx_isolation;
SELECT
@@SESSION.tx_isolation;
爲某個會話變量賦值
#方式一
SET @@tx_isolation = 'read-COMMITTED';
#方式二
SET SESSION.tx_isolation = 'read-COMMITTED';
四:自定義變量
**說明:**變量是用戶自定的,不是系統的。
自定義變量使用步驟:
聲明
賦值
使用(查看,比較,運算等)
作用域:
針對於當前會話(連接)有效,同於會話變量的作用域,應用在任何地方,也就是begin end裏面或begin end外面
自定義變量賦值的操作符 =或 :=
聲明並初始化
set @用戶變量名=值;或
set @用戶變量名:=值;或
select @用戶變量名:=值;
賦值(更新用戶變量的值)
#方式一:通過set或select
set @用戶變量名=值;或
set @用戶變量名:=值;或
select @用戶變量名:=值;
#方式二:通過select或into
select 字段 into 變量名 from 表;
使用(查看用戶變量的值)
select @用戶變量名;
案例:
聲明並初始化
set @name='john';
set @name=100;
set @count=1;
賦值
select count(*) into @count from employees;
查看
select @count;
五:局部變量
作用域:僅僅在定義它的begin end 中生效
應用在begin end 中的第一句話
聲明
declare 變量名 類型;
declare 變量名 類型 default 值;
賦值
方式一: 通過set或select
set 局部變量名=值;或
set 局部變量名:=值;或
select @局部變量名:=值;
方式二:通過select into
select 字段 into 局部變量名
from 表;
使用:
select 局部變量名:
對比局部變量和用戶變量
案例:聲明兩個變量並賦初始化值,求和,並打印
#用戶變量
set @m=1;
set @n=2;
set @sum=@m+@n;