mysql變量用法實(shí)例分析【系統(tǒng)變量、用戶(hù)變量】
本文實(shí)例講述了mysql變量用法。分享給大家供大家參考,具體如下:
本文內(nèi)容:
- 系統(tǒng)變量
- 用戶(hù)變量
- 局部變量
首發(fā)日期:2018-04-18
系統(tǒng)變量:
- 系統(tǒng)變量就是系統(tǒng)已經(jīng)提前定義好了的變量
- 系統(tǒng)變量一般都有其特殊意義。比如某些變量代表字符集、某些變量代表某些mysql文件位置
- 系統(tǒng)變量中包括會(huì)話(huà)級(jí)變量(當(dāng)次會(huì)話(huà)連接生效的變量,如names),以及全局變量(一直生效的變量) 【系統(tǒng)變量中全局變量和會(huì)話(huà)變量其實(shí)是使用一套變量,不同的是會(huì)話(huà)變量?jī)H當(dāng)次會(huì)話(huà)生效。】
-
- 會(huì)話(huà)變量的賦值:set 變量名 = 值; 【比如常用的set names ="utf8";】或者set @@變量名=值
- 全局變量的賦值:set global 變量名 = 值;
查看系統(tǒng)變量:
- show variables;
系統(tǒng)變量的調(diào)用:
- select @@變量名;
用戶(hù)變量:
- 用戶(hù)變量就是用戶(hù)自己定義的變量。
- 系統(tǒng)為了區(qū)別系統(tǒng)變量跟自定義變量,規(guī)定用戶(hù)自定義變量必須使用一個(gè)@符號(hào)
- 變量的定義方式:
set @變量名=1
- select @變量名:=值;
- select 值 into @變量名;
- 用戶(hù)變量可以不聲明定義,就可以直接使用,不過(guò)默認(rèn)是null值
- 用戶(hù)變量都是會(huì)話(huà)級(jí)的變量,僅在當(dāng)次連接中生效。
局部變量:
- 由于局部變量是用戶(hù)自定義的,可以認(rèn)為局部變量也是用戶(hù)變量【但有所不同,局部中不需要使用@】
- 局部變量一般用在sql語(yǔ)句塊中,比如存儲(chǔ)過(guò)程塊、觸發(fā)器塊等
- 局部變量的定義方法:
-
- 先使用declare聲明局部變量,其中可選項(xiàng)default后面可以跟一個(gè)付給變量的默認(rèn)值:【非常重要的一步,不然會(huì)設(shè)置成用戶(hù)變量】【注意:變量聲明語(yǔ)句要在其他語(yǔ)句如select語(yǔ)句之前】
- 示例:declare myq int;
- 示例:declare myq int default 666;
- 設(shè)置變量的值:
- set 變量名= 值;
- 獲取變量的值:
- select 變量名;
- 先使用declare聲明局部變量,其中可選項(xiàng)default后面可以跟一個(gè)付給變量的默認(rèn)值:【非常重要的一步,不然會(huì)設(shè)置成用戶(hù)變量】【注意:變量聲明語(yǔ)句要在其他語(yǔ)句如select語(yǔ)句之前】
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();
補(bǔ)充:
- 有些人可能會(huì)發(fā)現(xiàn)直接set 變量名=值;也可以定義“用戶(hù)變量”;但這是一種不好的行為【這種行為忽略了各自變量的功能】,因?yàn)槟悴恢罆?huì)不會(huì)跟系統(tǒng)變量沖突,所以最好用戶(hù)變量加上@
- 因?yàn)?= ,有很多地方都用來(lái)判斷是否等于,為了避免歧義,也可以使用:=來(lái)賦值
- 【上面雖然給了一些其他的賦值方法,但好像有一些是不通用的,比如:=只用于用戶(hù)變量,所以要審慎使用】。
更多關(guān)于MySQL相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《MySQL常用函數(shù)大匯總》、《MySQL日志操作技巧大全》、《MySQL事務(wù)操作技巧匯總》、《MySQL存儲(chǔ)過(guò)程技巧大全》及《MySQL數(shù)據(jù)庫(kù)鎖相關(guān)技巧匯總》
希望本文所述對(duì)大家MySQL數(shù)據(jù)庫(kù)計(jì)有所幫助。
相關(guān)文章
MySql如何查看索引并實(shí)現(xiàn)優(yōu)化
這篇文章主要介紹了MySql如何查看索引并實(shí)現(xiàn)優(yōu)化,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-12-12SQL筆記之?dāng)?shù)據(jù)庫(kù)結(jié)構(gòu)優(yōu)化方式
這篇文章主要介紹了SQL筆記之?dāng)?shù)據(jù)庫(kù)結(jié)構(gòu)優(yōu)化方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01MySQL性能優(yōu)化的一些技巧幫助你的數(shù)據(jù)庫(kù)
你完成了你的品牌新的應(yīng)用程序,一切工作就像一個(gè)魅力;突然間,一個(gè)大爆發(fā)的用戶(hù)你的MySQL服務(wù)器,您的網(wǎng)站已關(guān)閉,是什么問(wèn)題導(dǎo)致的呢?以下是MySQL性能優(yōu)化的一些技巧,將幫助你,幫助你的數(shù)據(jù)庫(kù)2013-01-01深入解析Linux下MySQL數(shù)據(jù)庫(kù)的備份與還原
以下是對(duì)Linux下MySQL數(shù)據(jù)庫(kù)的備份與還原進(jìn)行了詳細(xì)的分析介紹。需要的朋友可以過(guò)來(lái)參考下2013-08-08pymysql操作mysql數(shù)據(jù)庫(kù)的方法
這篇文章主要介紹了pymysql簡(jiǎn)單操作mysql數(shù)據(jù)庫(kù)的方法,主要講的是一些基礎(chǔ)的pymysql操作mysql數(shù)據(jù)庫(kù)的方法,結(jié)合實(shí)例代碼給大家講解的非常詳細(xì),需要的朋友可以參考下2023-04-04mysql 修改密碼和設(shè)置允許遠(yuǎn)程登錄
這篇文章主要介紹了mysql 修改密碼和設(shè)置允許遠(yuǎn)程登錄的相關(guān)資料,需要的朋友可以參考下2015-07-07