1. 程式人生 > 資料庫 >MySQL變數原理及應用例項

MySQL變數原理及應用例項

在mysql文件中,mysql變數可分為兩大類,即系統變數和使用者變數。

但根據實際應用又被細化為四種類型,即區域性變數、使用者變數、會話變數和全域性變數。

一、區域性變數

mysql區域性變數,只能用在begin/end語句塊中,比如儲存過程中的begin/end語句塊。

其作用域僅限於該語句塊。

-- declare語句專門用於定義區域性變數,可以使用default來說明預設值
declare age int default 0;

-- 區域性變數的賦值方式一
set age=18;

-- 區域性變數的賦值方式二
select StuAge
into age
from demo.student

where StuNo='A001';

二、使用者變數

mysql使用者變數,mysql中使用者變數不用提前申明,在用的時候直接用“@變數名”使用就可以了。

其作用域為當前連線。

-- 第一種用法,使用set時可以用“=”或“:=”兩種賦值符號賦值
set @age=19;

set @age:=20;

-- 第二種用法,使用select時必須用“:=”賦值符號賦值
select @age:=22;

select @age:=StuAge
from demo.student
where StuNo='A001';

三、會話變數

mysql會話變數,伺服器為每個連線的客戶端維護一系列會話變數。

其作用域僅限於當前連線,即每個連線中的會話變數是獨立的。

-- 顯示所有的會話變數
show session variables;

-- 設定會話變數的值的三種方式
set session auto_increment_increment=1;
set @@session.auto_increment_increment=2;
set auto_increment_increment=3; -- 當省略session關鍵字時,預設預設為session,即設定會話變數的值

-- 查詢會話變數的值的三種方式
select @@auto_increment_increment;
select @@session.auto_increment_increment;

show session variables like '%auto_increment_increment%'; -- session關鍵字可省略

-- 關鍵字session也可用關鍵字local替代
set @@local.auto_increment_increment=1;
select @@local.auto_increment_increment;

四、全域性變數

mysql全域性變數,全域性變數影響伺服器整體操作,當服務啟動時,它將所有全域性變數初始化為預設值。要想更改全域性變數,必須具有super許可權。

其作用域為server的整個生命週期。

-- 顯示所有的全域性變數
show global variables;

-- 設定全域性變數的值的兩種方式
set global sql_warnings=ON; -- global不能省略
set @@global.sql_warnings=OFF;

-- 查詢全域性變數的值的兩種方式
select @@global.sql_warnings;
show global variables like '%sql_warnings%';

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。