MySQL_基礎_變量

變量

分類
    系統變量:
        全局變量
        會話變量

    自定義變量:
        用戶變量
        局部變量

說明
    系統變量:
        說明:變量由系統定義,不是用戶定義,屬於服務器層面
        注意:全局變量須要添加global關鍵字,會話變量須要添加session關鍵字,若是不寫,默認會話級別

    自定義變量:
        說明:變量由用戶自定義,而不是系統提供的
        使用步驟:
            1、聲明
            2、賦值
            3、使用(查看、比較、運算等)

 

系統變量

全局變量
做用域:針對於全部會話(鏈接)有效,但不能跨重啓

1、查看全部全局變量
SHOW GLOBAL VARIABLES;

2、查看知足條件的部分系統變量
SHOW GLOBAL VARIABLES LIKE '%char%';

3、查看指定的系統變量的值
SELECT @@global.autocommit;

4、爲某個系統變量賦值
SET @@global.autocommit=0;
SET GLOBAL autocommit=0;


會話變量
做用域:針對於當前會話(鏈接)有效

1、查看全部會話變量
SHOW [SESSION] VARIABLES;

2、查看知足條件的部分會話變量
SHOW [SESSION] VARIABLES LIKE '%char%';

3、查看指定的會話變量的值
SELECT @@[session.]autocommit;

4、爲某個會話變量賦值
SET @@[session.]autocommit=0;
SET [SESSION] autocommit=0;

 

自定義變量

用戶變量
做用域:針對於當前會話(鏈接)有效,做用域同於會話變量

1、聲明並初始化
SET @變量名=值;
SET @變量名:=值;
SELECT @變量名:=值;

2、賦值(更新變量的值)
方式一:
    SET @變量名=值;
    SET @變量名:=值;
    SELECT @變量名:=值;
方式二:
    SELECT 字段 INTO @變量名 FROM 表;

3、使用(查看變量的值)
SELECT @變量名;


局部變量
做用域:僅僅在定義它的begin end塊中有效,應用在 begin end中的第一句話

1、聲明
DECLARE 變量名 類型;
DECLARE 變量名 類型 [DEFAULT 值];

2、賦值(更新變量的值)
方式一:
    SET 變量名=值;
    SET 變量名:=值;
    SELECT 變量名:=值;
方式二:
    SELECT 字段 INTO 變量名 FROM 表;

3、使用(查看變量的值)
SELECT 變量名;


案例
1、聲明兩個變量,求和並打印
    # 用戶變量
    SET @m=1;
    SET @n=1;
    SET @sum=@m+@n;
    SELECT @sum;

    # 局部變量
    DECLARE m INT DEFAULT 1;
    DECLARE n INT DEFAULT 1;
    DECLARE sum INT;
    SET sum=m+n;
    SELECT sum;

區別
            做用域                定義位置                語法
    用戶變量    當前會話             會話的任何地方           加@符號, 不用指定類型
    局部變量    定義它的BEGIN END中     BEGIN END的第一句話    不加@, 須要指定類型
相關文章
相關標籤/搜索