1. 程式人生 > ><MySQL>入門六 變數

<MySQL>入門六 變數

/*
    變數
    
    系統變數:
        全域性變數
        會話變數
    自定義變數
        使用者變數
        區域性變數
*/

-- ------------系統變數--------------------
/*
    變數由系統提供,不是使用者定義,屬於伺服器層面

    檢視的語法:
        show global  variables;
        show session variables;  不寫session,也是會話級別的
        
    檢視滿足條件的部分系統變數
      show global【session】 variables like '%char%';
    
    檢視指定的某個系統變數的值
      select @@global【session】 系統變數名;
    
    為系統變數賦值
      set global|session 系統變數名 = 值
      set @@global|session 系統變數名 = 值
    
    如果是全域性級別,加global,如果是會話級別session,不寫預設是session
    
    作用域:伺服器每次啟動為所有的全域性變數賦初始值,針對所有的會話(連線)有效,但不能跨重啟
*/ -- ------------使用者變數-------------------- /* 使用者變數:針對當前會話(連線)有效 宣告並初始化: set @使用者變數名 = 值; set @使用者變數名 := 值; select @使用者變數名 := 值; 複製或更新: set @使用者變數名 = 值; set @使用者變數名 := 值; select @使用者變數名 := 值; select 欄位 into @使用者變數名 from 表; 檢視使用者變數值:select @使用者變數名 作用域:會話中任意地方
*/ -- ------------區域性變數-------------------- /* 作用域:僅僅定義在begin end中有效,並且是第一句話 宣告:declare 變數名 型別; declare 變數值 型別 default 值; 賦值: set 區域性變數名 = 值; set 區域性變數名 := 值; select @區域性變數名 := 值; select 欄位 into 區域性變數名 from 表; 使用:select 區域性變數名;
*/ -- 案例:使用者變數 SET @m = 2; SET @n = 1; SET @sum = @m + @n; SELECT @sum; -- 3 -- 區域性變數 --報錯 DECLARE m INT DEFAULT 1; DECLARE m INT DEFAULT 2; DECLARE SUM INT; SET SUM = m + n; SELECT SUM;