文章詳情頁
mysql變量用法實例分析【系統變量、用戶變量】
瀏覽:3日期:2023-10-15 14:35:26
本文實例講述了mysql變量用法。分享給大家供大家參考,具體如下:
本文內容: 系統變量 用戶變量 局部變量首發日期:2018-04-18
系統變量: 系統變量就是系統已經提前定義好了的變量 系統變量一般都有其特殊意義。比如某些變量代表字符集、某些變量代表某些mysql文件位置 系統變量中包括會話級變量(當次會話連接生效的變量,如names),以及全局變量(一直生效的變量) 【系統變量中全局變量和會話變量其實是使用一套變量,不同的是會話變量僅當次會話生效。】會話變量的賦值:set 變量名 = 值; 【比如常用的set names ='utf8';】或者set @@變量名=值 全局變量的賦值:set global 變量名 = 值; 查看系統變量: show variables;系統變量的調用: select @@變量名;用戶變量: 用戶變量就是用戶自己定義的變量。 系統為了區別系統變量跟自定義變量,規定用戶自定義變量必須使用一個@符號 變量的定義方式: set @變量名=1 select @變量名:=值; select 值 into @變量名; 用戶變量可以不聲明定義,就可以直接使用,不過默認是null值 用戶變量都是會話級的變量,僅在當次連接中生效。局部變量: 由于局部變量是用戶自定義的,可以認為局部變量也是用戶變量【但有所不同,局部中不需要使用@】 局部變量一般用在sql語句塊中,比如存儲過程塊、觸發器塊等 局部變量的定義方法:先使用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();補充: 有些人可能會發現直接set 變量名=值;也可以定義“用戶變量”;但這是一種不好的行為【這種行為忽略了各自變量的功能】,因為你不知道會不會跟系統變量沖突,所以最好用戶變量加上@ 因為 = ,有很多地方都用來判斷是否等于,為了避免歧義,也可以使用:=來賦值 【上面雖然給了一些其他的賦值方法,但好像有一些是不通用的,比如:=只用于用戶變量,所以要審慎使用】。
更多關于MySQL相關內容感興趣的讀者可查看本站專題:《MySQL常用函數大匯總》、《MySQL日志操作技巧大全》、《MySQL事務操作技巧匯總》、《MySQL存儲過程技巧大全》及《MySQL數據庫鎖相關技巧匯總》
希望本文所述對大家MySQL數據庫計有所幫助。
相關文章:
排行榜
