mysql變量用法實例分析【系統(tǒng)變量、用戶變量】
更新時間:2020年04月17日 11:00:00 作者:隨風行云
這篇文章主要介紹了mysql變量用法,結合實例形式分析了mysql系統(tǒng)變量、用戶變量相關概念、功能、原理與使用技巧,需要的朋友可以參考下
本文實例講述了mysql變量用法。分享給大家供大家參考,具體如下:
本文內容:
- 系統(tǒng)變量
- 用戶變量
- 局部變量
首發(fā)日期:2018-04-18
系統(tǒng)變量:
- 系統(tǒng)變量就是系統(tǒng)已經提前定義好了的變量
- 系統(tǒng)變量一般都有其特殊意義。比如某些變量代表字符集、某些變量代表某些mysql文件位置
- 系統(tǒng)變量中包括會話級變量(當次會話連接生效的變量,如names),以及全局變量(一直生效的變量) 【系統(tǒng)變量中全局變量和會話變量其實是使用一套變量,不同的是會話變量僅當次會話生效?!?/li>
-
- 會話變量的賦值:set 變量名 = 值; 【比如常用的set names ="utf8";】或者set @@變量名=值
- 全局變量的賦值:set global 變量名 = 值;
查看系統(tǒng)變量:
- show variables;
系統(tǒng)變量的調用:
- select @@變量名;
用戶變量:
- 用戶變量就是用戶自己定義的變量。
- 系統(tǒng)為了區(qū)別系統(tǒng)變量跟自定義變量,規(guī)定用戶自定義變量必須使用一個@符號
- 變量的定義方式:
set @變量名=1
- select @變量名:=值;
- select 值 into @變量名;
- 用戶變量可以不聲明定義,就可以直接使用,不過默認是null值
- 用戶變量都是會話級的變量,僅在當次連接中生效。
局部變量:
- 由于局部變量是用戶自定義的,可以認為局部變量也是用戶變量【但有所不同,局部中不需要使用@】
- 局部變量一般用在sql語句塊中,比如存儲過程塊、觸發(fā)器塊等
- 局部變量的定義方法:
-
- 先使用declare聲明局部變量,其中可選項default后面可以跟一個付給變量的默認值:【非常重要的一步,不然會設置成用戶變量】【注意:變量聲明語句要在其他語句如select語句之前】
- 示例:declare myq int;
- 示例:declare myq int default 666;
- 設置變量的值:
- set 變量名= 值;
- 獲取變量的值:
- select 變量名;
- 先使用declare聲明局部變量,其中可選項default后面可以跟一個付給變量的默認值:【非常重要的一步,不然會設置成用戶變量】【注意:變量聲明語句要在其他語句如select語句之前】
create procedure myset() begin declare mya int; declare myq int default 777; select mya,myq; set myq=6; set mya=666; select mya,myq; end; call myset();
補充:
- 有些人可能會發(fā)現(xiàn)直接set 變量名=值;也可以定義“用戶變量”;但這是一種不好的行為【這種行為忽略了各自變量的功能】,因為你不知道會不會跟系統(tǒng)變量沖突,所以最好用戶變量加上@
- 因為 = ,有很多地方都用來判斷是否等于,為了避免歧義,也可以使用:=來賦值
- 【上面雖然給了一些其他的賦值方法,但好像有一些是不通用的,比如:=只用于用戶變量,所以要審慎使用】。
更多關于MySQL相關內容感興趣的讀者可查看本站專題:《MySQL常用函數(shù)大匯總》、《MySQL日志操作技巧大全》、《MySQL事務操作技巧匯總》、《MySQL存儲過程技巧大全》及《MySQL數(shù)據庫鎖相關技巧匯總》
希望本文所述對大家MySQL數(shù)據庫計有所幫助。
相關文章
MySQL性能優(yōu)化的一些技巧幫助你的數(shù)據庫
你完成了你的品牌新的應用程序,一切工作就像一個魅力;突然間,一個大爆發(fā)的用戶你的MySQL服務器,您的網站已關閉,是什么問題導致的呢?以下是MySQL性能優(yōu)化的一些技巧,將幫助你,幫助你的數(shù)據庫2013-01-01