在mysql文檔中,mysql變量可分為兩大類,即系統(tǒng)變量和用戶變量。
但根據(jù)實(shí)際應(yīng)用又被細(xì)化為四種類型,即局部變量、用戶變量、會(huì)話變量和全局變量。
一、局部變量
mysql局部變量,只能用在begin/end語(yǔ)句塊中,比如存儲(chǔ)過(guò)程中的begin/end語(yǔ)句塊。
其作用域僅限于該語(yǔ)句塊。
-- declare語(yǔ)句專門用于定義局部變量,可以使用default來(lái)說(shuō)明默認(rèn)值
declare age int default 0;-- 局部變量的賦值方式一
set age=18;-- 局部變量的賦值方式二
select StuAge
into age
from demo.student
where StuNo='A001';
二、用戶變量
mysql用戶變量,mysql中用戶變量不用提前申明,在用的時(shí)候直接用“@變量名”使用就可以了。
其作用域?yàn)楫?dāng)前連接。
-- 第一種用法,使用set時(shí)可以用“=”或“:=”兩種賦值符號(hào)賦值
set @age=19;set @age:=20;
-- 第二種用法,使用select時(shí)必須用“:=”賦值符號(hào)賦值
select @age:=22;select @age:=StuAge
from demo.student
where StuNo='A001';
三、會(huì)話變量
mysql會(huì)話變量,服務(wù)器為每個(gè)連接的客戶端維護(hù)一系列會(huì)話變量。
其作用域僅限于當(dāng)前連接,即每個(gè)連接中的會(huì)話變量是獨(dú)立的。
-- 顯示所有的會(huì)話變量
show session variables;-- 設(shè)置會(huì)話變量的值的三種方式
set session auto_increment_increment=1;
set @@session.auto_increment_increment=2;
set auto_increment_increment=3; -- 當(dāng)省略session關(guān)鍵字時(shí),默認(rèn)缺省為session,即設(shè)置會(huì)話變量的值-- 查詢會(huì)話變量的值的三種方式
select @@auto_increment_increment;
select @@session.auto_increment_increment;
show session variables like '%auto_increment_increment%'; -- session關(guān)鍵字可省略-- 關(guān)鍵字session也可用關(guān)鍵字local替代
set @@local.auto_increment_increment=1;
select @@local.auto_increment_increment;
四、全局變量
mysql全局變量,全局變量影響服務(wù)器整體操作,當(dāng)服務(wù)啟動(dòng)時(shí),它將所有全局變量初始化為默認(rèn)值。要想更改全局變量,必須具有super權(quán)限。
其作用域?yàn)閟erver的整個(gè)生命周期。
-- 顯示所有的全局變量
show global variables;-- 設(shè)置全局變量的值的兩種方式
set global sql_warnings=ON; -- global不能省略
set @@global.sql_warnings=OFF;-- 查詢?nèi)肿兞康闹档膬煞N方式
select @@global.sql_warnings;
show global variables like '%sql_warnings%';
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
標(biāo)簽:阿里 呼和浩特 公主嶺 牡丹江 沈陽(yáng) 天津 惠州 合肥
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《MySQL變量原理及應(yīng)用實(shí)例》,本文關(guān)鍵詞 MySQL,變量,原理,及,應(yīng)用,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。