溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用mysql變量

發(fā)布時間:2020-08-03 10:22:02 來源:億速云 閱讀:160 作者:小豬 欄目:MySQL數(shù)據(jù)庫

小編這次要給大家分享的是如何使用mysql變量,文章內容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。

本文內容:

  • 系統(tǒng)變量
  • 用戶變量
    • 局部變量

首發(fā)日期:2018-04-18


系統(tǒng)變量:

  • 系統(tǒng)變量就是系統(tǒng)已經(jīng)提前定義好了的變量
  • 系統(tǒng)變量一般都有其特殊意義。比如某些變量代表字符集、某些變量代表某些mysql文件位置
  • 系統(tǒng)變量中包括會話級變量(當次會話連接生效的變量,如names),以及全局變量(一直生效的變量) 【系統(tǒng)變量中全局變量和會話變量其實是使用一套變量,不同的是會話變量僅當次會話生效。】
    • 會話變量的賦值: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 變量名;
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變量的文章,如果覺得文章內容寫得不錯的話,可以把它分享出去給更多人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI