系統變量:
由系統提供,不是用戶定義,屬於服務器層面
1、查看所有的系統變量:show global|session variables;
2、查看滿足條件的部分系統變量:show global|[session] variables like '%char%';
3、查看指定的某個系統變量的值:select @@global | [session].系統變量名;
4、爲某個系統變量賦值:
方式一:
set global | [session] 系統變量名=值
方式二:
set @@global | [session].系統,變量名=值
注意:
如果是全局級別,則需要加global,如果是會話級別,則需要加session,如果不加,默認爲session
自定義變量:
變量是用戶自定義的,不是由系統的
使用步驟:
聲明、賦值、使用(查看、比較、運算等)
1、用戶變量:
作用域:針對於當前會話(連接)有效,同於會話變量的作用域
應用再任何地方,也就是begin end 裏面或外面
1、聲明並初始化
set @用戶變量名=值;
set @用戶變量名:=值;
select @用戶變量名:=值;
賦值(更新用戶變量的值)
方式一:通過SET或SELECT
set @用戶變量名=值;
set @用戶變量名:=值;
select @用戶變量名:=值;
例如:
聲明並初始化
SET @name='john';
SET @name=100;
賦值
方式二:通過select into
select 字段 into 變量名 from 表;
例如:
select count(*) into @name from employees;
3、使用(查看用戶變量的值)
SELECT @用戶變量名;
局部變量
作用域:僅僅在定義它的begin end 中有效
應用在begin end 中的第一句話
1、聲明
DECLARE 變量名 類型;
DECLARE 變量名 類型 DEFAULT 值;
2、賦值
方式一:通過SET或SELECT
set 局部變量名=值;
set 局部變量名:=值;
select @局部變量名:=值;
方式二:通過select into
select 字段 into 局部變量名 from 表;
使用
SELECT 局部變量名;
對比用戶變量和局部遍歷:
作用域 定義和使用的位置 語法
用戶變量 當前會話 會話中的任何地方 必須加@,不用限定類型
局部變量 begin end中 只能在begin end 中,且爲第一句話 一般不用加@,需要限定類型
例如:聲明兩個變量並賦初始值,求和,並打印
1、用戶變量
SET @m=1;
SET @n=2;
SET @sum=@m+@n;
SELECT @sum;