在mysql文檔中,mysql變量可分爲兩大類,即系統變量和用戶變量。mysql
但根據實際應用又被細化爲四種類型,即局部變量、用戶變量、會話變量和全局變量。sql
1、局部變量服務器
mysql局部變量,只能用在begin/end語句塊中,好比存儲過程當中的begin/end語句塊。session
其做用域僅限於該語句塊。spa
-- declare語句專門用於定義局部變量,能夠使用default來講明默認值 declare age int default 0; -- 局部變量的賦值方式一 set age=18; -- 局部變量的賦值方式二 select StuAge into age from demo.student where StuNo='A001';
2、用戶變量code
mysql用戶變量,mysql中用戶變量不用提早申明,在用的時候直接用「@變量名」使用就能夠了。server
其做用域爲當前鏈接。blog
-- 第一種用法,使用set時能夠用「=」或「:=」兩種賦值符號賦值 set @age=19; set @age:=20; -- 第二種用法,使用select時必須用「:=」賦值符號賦值 select @age:=22; select @age:=StuAge from demo.student where StuNo='A001';
3、會話變量生命週期
mysql會話變量,服務器爲每一個鏈接的客戶端維護一系列會話變量。作用域
其做用域僅限於當前鏈接,即每一個鏈接中的會話變量是獨立的。
-- 顯示全部的會話變量 show session variables; -- 設置會話變量的值的三種方式 set session auto_increment_increment=1; set @@session.auto_increment_increment=2; set auto_increment_increment=3; -- 當省略session關鍵字時,默認缺省爲session,即設置會話變量的值 -- 查詢會話變量的值的三種方式 select @@auto_increment_increment; select @@session.auto_increment_increment; show session variables like '%auto_increment_increment%'; -- session關鍵字可省略 -- 關鍵字session也可用關鍵字local替代 set @@local.auto_increment_increment=1; select @@local.auto_increment_increment;
4、全局變量
mysql全局變量,全局變量影響服務器總體操做,當服務啓動時,它將全部全局變量初始化爲默認值。要想更改全局變量,必須具備super權限。
其做用域爲server的整個生命週期。
-- 顯示全部的全局變量 show global variables; -- 設置全局變量的值的兩種方式 set global sql_warnings=ON; -- global不能省略 set @@global.sql_warnings=OFF; -- 查詢全局變量的值的兩種方式 select @@global.sql_warnings; show global variables like '%sql_warnings%';