這篇文章主要是認識一下MySQL中的變量,本來是不準備整理的,但是發(fā)現(xiàn)后面的存儲過程等等在實際用的時候還挺多。
mysql里面的變量你可以和JAVA中的變量進行對比理解。主要分為兩種:系統(tǒng)變量和自定義變量。自定義變量是重點。
一、系統(tǒng)變量
系統(tǒng)變量那肯定就是mysql數(shù)據(jù)庫為我們提供的,再細化的話又可以分為兩種:全局變量和會話變量。
1、查看所有的系統(tǒng)變量
只需要輸入show global variables;回車之后你會發(fā)現(xiàn)有很多的系統(tǒng)變量,查看會話變量的時候只需要把global變成session就可以了。會話變量的意思是只是在本次回話有效。會話的含義就是你開兩個命令行窗口,會話變量的值的改變在另外一個無效。
每一個人的機器可能數(shù)量不同。我的電腦里面有494條。
2、查看某個指定的系統(tǒng)變量
select @@global.變量名稱;查看會話的變量值的時候只需要把global變成session就可以了。
3、為某個變量賦值
set global | session 系統(tǒng)變量名 = 新值;
set @@global | @@session.系統(tǒng)變量名 = 值;
二、自定義變量
自定變量就是用戶自己定義的,而不是由系統(tǒng)提供的。自定義變量也可以分為兩種:用戶變量和局部變量。
1、用戶變量
用戶變量的作用域是當前會話,也就是說你再新建一個終端或者是命令行窗口就無效了。
(1)聲明初始化:
set @用戶變量名 = 值
set @用戶變量名 := 值
select @用戶變量名:=值
(2)賦值并查看
賦值是一個重點,常常和表還有存儲過程等結(jié)合使用。
select 字段 into 自定義變量 from 表名;
2、局部變量
局部變量的作用域就是在定義他的begin end中有效。和我們java中的方法中的變量類似。
(1)聲明:
declare 變量名 類型;
declare 變量名 類型 default 默認值;
(2)賦值
set @用戶變量名 = 值
set @用戶變量名 := 值
select @用戶變量名:=值
select 字段 into 自定義變量 from 表名;
(3)使用
select 局部變量名;
在這里建了一個存儲過程,聲明了倆變量aa、bb。在內(nèi)部定義局部變量。如果沒有給變量指定默認值,則它的系統(tǒng)默認值為 NULL。