MySQL系統(tǒng)及自定義變量方式
詳情系統(tǒng)變量信息參考MySQL官方文檔
系統(tǒng)變量分類(lèi)
全局系統(tǒng)變量(global)
全局系統(tǒng)變量針對(duì)于所有會(huì)話(連接)有效,但 不能跨重啟
會(huì)話系統(tǒng)變量(session)
僅針對(duì)當(dāng)前連接有效,會(huì)話期間對(duì)某個(gè)會(huì)話系統(tǒng)變量值修改,不影響其他會(huì)話同一會(huì)話系統(tǒng)變量的值
若存在多個(gè)會(huì)話,一旦有某個(gè)會(huì)話對(duì)某個(gè)全局系統(tǒng)變量值的修改會(huì)導(dǎo)致其他會(huì)話中同一個(gè)全局系統(tǒng)變量值的修改。
查看系統(tǒng)相關(guān)變量
#查看全局系統(tǒng)變量 show global variables ; #查看會(huì)話系統(tǒng)變量 show session variables ; #查看滿(mǎn)足條件的部分系統(tǒng)變量。 SHOW GLOBAL VARIABLES LIKE '%標(biāo)識(shí)符%'; #查看滿(mǎn)足條件的部分會(huì)話變量 SHOW SESSION VARIABLES LIKE '%標(biāo)識(shí)符%'; #查看指定的系統(tǒng)變量的值 SELECT @@global.變量名; #查看指定的會(huì)話變量的值 SELECT @@session.變量名;
修改系統(tǒng)變量的值
方式1:修改MySQL 配置文件 ,繼而修改MySQL系統(tǒng)變量的值(該方法需要重啟MySQL服務(wù))
方式2:在MySQL服務(wù)運(yùn)行期間,使用“set”命令重新設(shè)置系統(tǒng)變量的值,如下:
#修改全局變量的值 #方式1: SET @@global.變量名=變量值; #方式2: SET GLOBAL 變量名=變量值; #修改某個(gè)會(huì)話變量的值 #方式1: SET @@session.變量名=變量值; #方式2: SET SESSION 變量名=變量值;
用戶(hù)自定義變量
用戶(hù)變量是用戶(hù)自己定義的,作為 MySQL 編碼規(guī)范,MySQL 中的用戶(hù)變量以 一個(gè)“@” 開(kāi)頭。根據(jù)作用
范圍不同,又分為 會(huì)話用戶(hù)變量 和 局部變量
①會(huì)話用戶(hù)變量:作用域和會(huì)話變量一樣,只對(duì) 當(dāng)前連接 會(huì)話有效。
②局部變量:只在 BEGIN 和 END 語(yǔ)句塊中有效。局部變量只能在 存儲(chǔ)過(guò)程和函數(shù) 中使用。
會(huì)話用戶(hù)變量
定義:
#方式1:“=”或“:=” SET @用戶(hù)變量 = 值; SET @用戶(hù)變量 := 值; #方式2:“:=” 或 INTO關(guān)鍵字 SELECT @用戶(hù)變量 := 表達(dá)式 [FROM 等子句]; SELECT 表達(dá)式 INTO @用戶(hù)變量 [FROM 等子句];
查看用戶(hù)變量的值 (查看、比較、運(yùn)算等),查看某個(gè)未聲明的變量時(shí),將得到NULL值
SELECT @用戶(hù)變量
局部變量
定義:可以使用 DECLARE 語(yǔ)句定義一個(gè)局部變量
DECLARE 變量名 類(lèi)型 [default 值]; # 如果沒(méi)有DEFAULT子句,初始值為NULL
作用域:僅僅在定義它的 BEGIN … END 中有效
位置:只能放在 BEGIN ... END 中,而且只能放在第一句
BEGIN #聲明局部變量 DECLARE 變量名1 變量數(shù)據(jù)類(lèi)型 [DEFAULT 變量默認(rèn)值]; DECLARE 變量名2,變量名3,... 變量數(shù)據(jù)類(lèi)型 [DEFAULT 變量默認(rèn)值]; #為局部變量賦值 SET 變量名1 = 值; SELECT 值 INTO 變量名2 [FROM 子句]; #查看局部變量的值 SELECT 變量1,變量2,變量3; END
賦值:
#方式1:一般用于賦簡(jiǎn)單的值 SET 變量名=值; SET 變量名:=值; #方式2:一般用于賦表中的字段值 SELECT 字段名或表達(dá)式 INTO 變量名 FROM 表;
使用變量(查看、比較、運(yùn)算等)
SELECT 局部變量名;
對(duì)比會(huì)話用戶(hù)變量與局部變量
作用域 | 定義位置 | 語(yǔ)法 | |
---|---|---|---|
會(huì)話用戶(hù)變量 | 當(dāng)前會(huì)話 | 會(huì)話的任何地方 | 加@符號(hào),不用指定類(lèi)型 |
局部變量 | 定義它的BEGIN END中 | BEGIN END的第一句話 | 一般不用加@,需要指定類(lèi)型 |
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
關(guān)于mysql?left?join?查詢(xún)慢時(shí)間長(zhǎng)的踩坑總結(jié)
這篇文章主要介紹了關(guān)于mysql?left?join?查詢(xún)慢時(shí)間長(zhǎng)的踩坑總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09mysql添加索引方法詳解(Navicat可視化加索引與sql語(yǔ)句加索引)
索引用來(lái)快速地尋找那些具有特定值的記錄,如果沒(méi)有索引,執(zhí)行查詢(xún)時(shí)MySQL必須從第一個(gè)記錄開(kāi)始掃描整個(gè)表的所有記錄,直至找到符合要求的記錄,表里面的記錄數(shù)量越多,代價(jià)就越高,下面這篇文章主要給大家介紹了關(guān)于mysql添加索引的相關(guān)資料,需要的朋友可以參考下2022-11-11windows 環(huán)境下 MySQL 8.0.13 免安裝版配置教程
這篇文章主要介紹了windows 環(huán)境下 MySQL 8.0.13 免安裝版配置教程,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2018-12-12windows 安裝解壓版 mysql5.7.28 winx64的詳細(xì)教程
這篇文章主要介紹了windows 安裝解壓版 mysql5.7.28 winx64的詳細(xì)教程,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12美團(tuán)網(wǎng)技術(shù)團(tuán)隊(duì)分享的MySQL索引及慢查詢(xún)優(yōu)化教程
這篇文章主要介紹了美團(tuán)網(wǎng)技術(shù)團(tuán)隊(duì)分享的MySQL索引及慢查詢(xún)優(yōu)化教程,結(jié)合了實(shí)際的磁盤(pán)IO情況對(duì)一些優(yōu)化方案作出了分析,十分推薦!需要的朋友可以參考下2015-11-11mysql 海量數(shù)據(jù)的存儲(chǔ)和訪問(wèn)解決方案
數(shù)據(jù)庫(kù)水平切分的實(shí)現(xiàn)原理解析---分庫(kù),分表,主從,集群,負(fù)載均衡器2010-05-05