詳解MySQL 變數

2021-10-11 09:54:14 字數 3105 閱讀 5060

這裡學習變數主要是為後面學習儲存過程和函式做鋪墊。

系統變數:

全域性變數

會話變數

自定義變數:

使用者變數

區域性變數

1、概述

說明:變數由系統定義,不是使用者定義,屬於伺服器層面。

注意:全域性變數需要新增global關鍵字,會話變數需要新增session關鍵字,如果不寫,缺省會話級別。

使用步驟:

# 1、檢視所有系統變數

show global|【session】variables;

# 2、檢視滿足條件的部分系統變數

show global|【session】 variables like '%char%'

;# 3、檢視指定的系統變數的值

select @@global|【session】.系統變數名;

# 4、為某個系統變數賦值

# 方式一:

set global|【session】系統變數名=值;

# 方式二:

set @@global|【session】.系統變數名=值;

2、全域性變數作用域:針對於所有會話(連線)有效,但不能跨重啟。

一般修改系統全域性變數都需要相關許可權。

示例

# ①檢視所有全域性變數

show global variables;

# ②檢視滿足條件的部分系統變數

show global variables like '%char%'

;# ③檢視指定的系統變數的值

select @@global.autocommit;

# ④為某個系統變數賦值

# 方式一

set @@global.autocommit=0;

# 方式二

set global autocommit=

1;

3、會話變數作用域:針對於當前會話(連線)有效。

# ①檢視所有會話變數

show session variables;

# ②檢視滿足條件的部分會話變數

show session variables like '%char%'

;# ③檢視指定的會話變數的值

#方式1

select @@autocommit;

#方式2

select @@session.tx_isolation;

# ④為某個會話變數賦值

#方式1

set @@session.tx_isolation=

'read-uncommitted'

; #方式2

set session tx_isolation=

'read-committed'

;

說明:變數由使用者自定義,而不是系統提供的。

使用步驟:

1、宣告

2、賦值

3、使用(檢視、比較、運算等)

1、使用者變數作用域:針對於當前會話(連線)有效,作用域同於會話變數。

#賦值操作符:=或:

=# ①宣告並初始化(三種方式)

set @變數名=值;

set @變數名:

=值;select @變數名:

=值; # select只能用:

=# ②賦值(更新變數的值)

#方式一:

set @變數名=值;

set @變數名:

=值; select @變數名:

=值; #方式二:

select 字段 into @變數名 from 表;

# ③使用(檢視變數的值)

select @變數名;

2、區域性變數作用域:僅僅在定義它的begin end塊中有效。應用在 begin end中的第一句話。

# 和上面使用者變數不同的是: 區域性變數只能申明在bengin和end內

# ①宣告

declare 變數名 型別;

declare 變數名 型別 【default 值】;

# ②賦值(更新變數的值)

#方式一:

set 區域性變數名=值;

set 區域性變數名:

=值; select 區域性變數名:

=值; #方式二:

select 字段 into 具備變數名 from 表;

# ③使用(檢視變數的值)

select 區域性變數名;

案例:宣告兩個變數,求和並列印。

# 使用者變數 [能夠成功執行]

set @m=1;

set @n=1;

set @sum=@m+@n;

select @sum;

# 執行結果為2

# 區域性變數 [不能成功執行因為沒有放在bengin和end中,而bengin和end是在寫儲存過程和函式是用到,後面會寫]

declare m int default 1

;declare n int default 1

;declare sum int;

set sum=m+n;

select sum;

使用者變數和區域性變數的對比

作用域定義位置

語法使用者變數

當前會話

會話的任何地方

加@符號,不用指定型別

區域性變數

定義它的begin end中

begin end的第一句話

一般不用加@,需要指定型別

希望本文對你有所幫助~~感興趣可以加入我們。642830685,技術大牛解惑答疑,同行一起交流。

MySQL變數詳解

mysql變數分為 系統變數 自定義變數 一 系統變數 1 全域性變數 作用域 針對於所有會話 連線 有效,但不能跨重啟 檢視所有全域性變數 show global variables 檢視滿足條件的部分系統變數 show global variables like char 檢視指定的系統變數的值...

mysql中的變數詳解

一 系統變數 1.說明 變數由系統定義,不是使用者定義,屬於伺服器層面 2.注意 系統變數包含全域性變數和會話變數,全域性變數需要新增global關鍵字,會話變數需要新增session關鍵字,如果不寫,缺省會話級別 使用步驟 1 檢視所有系統變數 show global session variab...

MySQL對使用者變數 系統變數 區域性變數詳解

目錄 1 變數分類 1.1 使用者變數 1.1.1 使用者變數定義 1.1.2 使用者變數操作 1.2 系統變數 1.2.1 系統變數定義 1.2.2 系統變數操作 1.3 區域性變數 1.3.1 區域性變數定義 1.3.2 賦值 mysql資料庫中的變數分為mysql系統變數和mysql使用者變數...