1. 程式人生 > >(十一)MySQL基礎——變數

(十一)MySQL基礎——變數

一、變數分類

(1)系統變數:根據作用域不同又劃分為——全域性變數和會話變數

(2)自定義變數:使用者變數、區域性變數

二、變數說明

1、系統變數

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

使用語法:如果是全域性變數,則需要加GLOBAL;如果是會話級別,則需要加SESSION;如果不寫,則預設SESSION

(1)檢視所有的系統變數

-- 檢視全域性變數
SHOW GLOBAL VARIABLES;

-- 檢視會話變數
SHOW SESSION VARIABLES;

-- 預設是檢視會話變數
SHOW VARIABLES

(2)檢視滿足條件的部分系統變數

-- 案例檢視滿足條件的全域性變數
SHOW GLOBAL VARIABLES LIKE '%char'

-- 案例檢視滿足條件的會話變數
SHOW SESSION VARIABLES LIKE '%char'

-- 預設是檢視會話變數
SHOW VARIABLES LIKE '%char'

(3)檢視指定的某個系統變數的值

-- 檢視指定的全域性變數
SHOW @@GLOBAL.系統變數名;

-- 檢視指定的會話變數
SHOW @@SESSION.系統變數名;

-- 預設是檢視會話變數
SHOW @@系統變數名

(4)為某個系統變數賦值

------------------  方式一  --------------------
-- 給全域性變數賦值
SET GLOBAL 系統變數名 = 值;

-- 給會話變數賦值
SET SESSION 系統變數名 = 值;

-- 預設是給會話變數賦值
SET 系統變數名 = 值;

------------------  方式二  ---------------------
-- 給全域性變數賦值
SET @@GLOBAL.系統變數名 = 值;

-- 給會話變數賦值
SET @@SESSION.系統變數名 = 值;

-- 預設是給會話變數賦值
SET @@系統變數名 = 值;

全域性變數的作用域:伺服器每次啟動將為所有的全域性變數賦初始值,針對於所有的會話(或者叫連線)生效,但不能跨重啟

會話變數的作用域:僅僅針對當前會話(連線)有效

2、自定義變數

說明:變數是使用者自定義的,不是由系統建立的

使用步驟:宣告、賦值、使用(檢視、比較、運算等)

(1)使用者變數

作用域:針對於當前會話(連線)有效,同會話變數的作用域

使用語法:

①宣告並初始化——賦值的操作符:     =   或    :=

-------------------  方式一  -------------------
SET @使用者變數名 = 值;

-------------------  方式二  -------------------
SET @使用者變數名 := 值;

-------------------  方式三  -------------------
SELECT @使用者變數名 := 值;

②賦值(更新使用者變數的值)

-------------------  方式1.1 通過SET或SELECT -------------------
SET @使用者變數名 = 值;

-------------------  方式1.2  -------------------
SET @使用者變數名 := 值;

-------------------  方式1.3  -------------------
SELECT @使用者變數名 := 值;


-------------------  方式2.1 通過SELECT INTO -------------------
SELECT 欄位 INTO @變數名 FROM 表;

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

SELECT @使用者變數名;

(2)區域性變數

作用域:僅僅是在定義它的BEGIN   END中有效

應用場景:應用在BEGIN   END 中第一句話

使用語法:

①宣告

DECLARE 變數名 型別;
DECLARE 變數名 型別 DEFAULT 值;

②賦值

-------------------  方式1.1 通過SET或SELECT -------------------
SET 區域性變數名 = 值;

-------------------  方式1.2  -------------------
SET 區域性變數名 := 值;

-------------------  方式1.3  -------------------
SELECT @區域性變數名 := 值;


-------------------  方式2.1 通過SELECT INTO -------------------
SELECT 欄位 INTO 區域性變數名 FROM 表;

③使用

SELECT 區域性變數名;

(3)使用者變數和區域性變數對比

  作用域 定義和使用的位置 語法
使用者變數 當前會話 會話中的任何地方 必須加@符號,不用限定型別
區域性變數 BEGIN  END中 只能在BEGIN  END中,且為第一句話 一般不加@符號,需要限定型別