最近2018中文字幕在日韩欧美国产成人片_国产日韩精品一区二区在线_在线观看成年美女黄网色视频_国产精品一区三区五区_国产精彩刺激乱对白_看黄色黄大色黄片免费_人人超碰自拍cao_国产高清av在线_亚洲精品电影av_日韩美女尤物视频网站

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
mysql變量怎么自定義

這篇文章主要介紹“MySQL變量怎么自定義”的相關(guān)知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“mysql變量怎么自定義”文章能幫助大家解決問題。

創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),桂陽企業(yè)網(wǎng)站建設(shè),桂陽品牌網(wǎng)站建設(shè),網(wǎng)站定制,桂陽網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,桂陽網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

系統(tǒng)變量

  • 簡介

1、系統(tǒng)變量
    系統(tǒng)變量分為全局系統(tǒng)變量(需要添加 global 關(guān)鍵字)以及會話系統(tǒng)變量(需要添加 session 關(guān)鍵字),有時也把全局系統(tǒng)變量簡稱為全局變量,有時也把會話系統(tǒng)變量稱為local變量。如果不寫,默認會話級別
    全局系統(tǒng)變量針對于所有會話(連接)有效,但 不能跨重啟
    在MySQL中有些系統(tǒng)變量只能是全局的,例如 max_connections 用于限制服務(wù)器的最大連接數(shù);有些系統(tǒng)變量作用域既可以是全局又可以是會話,例如 character_set_client 用于設(shè)置客戶端的字符集;有些系統(tǒng)變量的作用域只能是當(dāng)前會話,例如 pseudo_thread_id 用于標記當(dāng)前會話的 MySQL 連接 ID

2、用戶自定義變量
    每一個MySQL客戶機成功連接MySQL服務(wù)器后,都會產(chǎn)生與之對應(yīng)的會話。會話期間,MySQL服務(wù)實例會在MySQL服務(wù)器內(nèi)存中生成與該會話對應(yīng)的會話系統(tǒng)變量,這些會話系統(tǒng)變量的初始值是全局系統(tǒng)變量值的復(fù)制
    會話系統(tǒng)變量僅針對于當(dāng)前會話(連接)有效。會話期間,當(dāng)前會話對某個會話系統(tǒng)變量值的修改,不會影響其他會話同一個會話系統(tǒng)變量的值
    會話1對某個全局系統(tǒng)變量值的修改會導(dǎo)致會話2中同一個全局系統(tǒng)變量值的修改
  • 代碼案例

# 查看系統(tǒng)變量
# 查詢?nèi)窒到y(tǒng)變量
SHOW GLOBAL VARIABLES;
# 查詢會話系統(tǒng)變量
SHOW SESSION VARIABLES; 
# 默認查詢的是會話系統(tǒng)變量
SHOW VARIABLES; 

# 查詢部分系統(tǒng)變量
# 模糊查詢
SHOW GLOBAL VARIABLES LIKE 'admin_%';
SHOW VARIABLES LIKE 'character_%';

# 查看指定系統(tǒng)變量
SELECT @@global.max_connections;
SELECT @@global.character_set_client;

# 錯誤寫法,由于該變量是會話系統(tǒng)變量
SELECT @@global.pseudo_thread_id;

# 錯誤寫法,由于該變量是全局系統(tǒng)變量
SELECT @@session.max_connections;

# 查看會話系統(tǒng)變量
SELECT @@session.character_set_client;
SELECT @@session.pseudo_thread_id;

# 當(dāng)變量在全局系統(tǒng)變量或會話系統(tǒng)量中都有時,先查詢會話系統(tǒng)變量,再查詢?nèi)窒到y(tǒng)變量
SELECT @@character_set_client; 

# 修改系統(tǒng)變量的值
# 修改全局系統(tǒng)變量
# 方式1:
SET @@global.max_connections = 161;
# 方式2:
SET GLOBAL max_connections = 171;

# 針對于當(dāng)前的數(shù)據(jù)庫實例是有效的,一旦重啟mysql服務(wù),就失效了

# 修改會話系統(tǒng)變量
# 方式1:
SET @@session.character_set_client = 'gbk';
# 方式2:
SET SESSION character_set_client = 'gbk';

# 針對于當(dāng)前會話是有效的,一旦結(jié)束會話,重新建立起新的會話,就失效了

用戶變量

  • 簡介

分為會話用戶變量和局部變量
會話用戶變量:作用域和會話變量一樣,只對 當(dāng)前連接 會話有效
局部變量:只在 BEGIN 和 END 語句塊中有效。局部變量只能在 存儲過程和函數(shù) 中使用
  • 定義變量

#方式1:“=”或“:=”
SET @用戶變量 = 值;
SET @用戶變量 := 值;

#方式2:“:=” 或 INTO關(guān)鍵字
SELECT @用戶變量 := 表達式 [FROM 等子句];
SELECT 表達式 INTO @用戶變量 [FROM 等子句];
  • 查看用戶變量的值

SELECT @用戶變量
  • 會話用戶變量代碼案例

# 方式1:
SET @m1 = 1;
SET @m2 := 2;
SET @sum := @m1 + @m2;
# 查看
SELECT @sum;

# 方式2:
SELECT @count := COUNT(*) FROM employees;

SELECT @count;

SELECT AVG(salary) INTO @avg_sal FROM employees;

SELECT @avg_sal;
  • 局部變量簡介

使用DECLARE聲明 
聲明并使用在BEGIN ... END 中 (使用在存儲過程、函數(shù)中)
DECLARE的方式聲明的局部變量必須聲明在BEGIN中的首行的位置

BEGIN
    #聲明局部變量
    DECLARE 變量名1 變量數(shù)據(jù)類型 [DEFAULT 變量默認值];
    DECLARE 變量名2,變量名3,... 變量數(shù)據(jù)類型 [DEFAULT 變量默認值];

    #為局部變量賦值
    SET 變量名1 = 值;
    SELECT 值 INTO 變量名2 [FROM 子句];

    #查看局部變量的值
    SELECT 變量1,變量2,變量3;
END

# 定義變量
DECLARE 變量名 類型 [default 值]; # 如果沒有DEFAULT子句,初始值為NULL

# 賦值
# 方式1
SET 變量名=值;
SET 變量名:=值;
# 方式2
SELECT 字段名或表達式 INTO 變量名 FROM 表;

# 查看
SELECT 局部變量名;
  • 局部變量代碼案例

DELIMITER //    # 開始
CREATE PROCEDURE test_var()   # 創(chuàng)建存儲過程
BEGIN
  #1、聲明局部變量
  DECLARE a INT DEFAULT 0;
  DECLARE b INT ;
  # DECLARE a,b INT DEFAULT 0;    # 寫法2
  DECLARE emp_name VARCHAR(25);
  #2、賦值
  SET a = 1;
  SET b := 2;
  # 將last_name賦值給emp_name
  SELECT last_name INTO emp_name FROM employees WHERE employee_id = 101;
  #3、使用
  SELECT a,b,emp_name;  
END //
DELIMITER;    # 結(jié)束

#調(diào)用存儲過程
CALL test_var();

# 舉例1:聲明局部變量,并分別賦值為employees表中employee_id為102的last_name和salary
DELIMITER //      # 開始
CREATE PROCEDURE test_pro()
BEGIN
  #聲明
  DECLARE emp_name VARCHAR(25);
  DECLARE sal DOUBLE(10,2) DEFAULT 0.0;
  #賦值
  SELECT last_name,salary INTO emp_name,sal   # 賦值
  FROM employees
  WHERE employee_id = 102;
  #使用
  SELECT emp_name,sal;
END //
DELIMITER ;   # 結(jié)束

# 調(diào)用存儲過程
CALL test_pro();

# 舉例2:聲明兩個變量,求和并打印 (分別使用會話用戶變量、局部變量的方式實現(xiàn))
# 方式1:使用會話用戶變量
SET @v1 = 10;
SET @v2 := 20;
SET @result := @v1 + @v2;
# 查看
SELECT @result;

# 方式2:使用局部變量
DELIMITER //
CREATE PROCEDURE add_value()
BEGIN
  #聲明
  DECLARE value1,value2,sum_val INT;
  #賦值
  SET value1 = 10;
  SET value2 := 100;
  SET sum_val = value1 + value2;
  #使用
  SELECT sum_val;
END //
DELIMITER ;

#調(diào)用存儲過程
CALL add_value();

# 舉例3:創(chuàng)建存儲過程“different_salary”查詢某員工和他領(lǐng)導(dǎo)的薪資差距,并用IN參數(shù)emp_id接收員工id,用OUT參數(shù)dif_salary輸出薪資差距結(jié)果
DELIMITER //    # 開始
CREATE PROCEDURE different_salary(IN emp_id INT, OUT dif_salary DOUBLE)   # 輸出dif_salary DOUBLE
BEGIN
  #分析:查詢出emp_id員工的工資;查詢出emp_id員工的管理者的id;查詢管理者id的工資;計算兩個工資的差值
  #聲明變量
  DECLARE emp_sal DOUBLE DEFAULT 0.0; #記錄員工的工資
  DECLARE mgr_sal DOUBLE DEFAULT 0.0; #記錄管理者的工資
  DECLARE mgr_id INT DEFAULT 0; #記錄管理者的id
  #賦值
  SELECT salary INTO emp_sal FROM employees WHERE employee_id = emp_id;
  SELECT manager_id INTO mgr_id FROM employees WHERE employee_id = emp_id;
  SELECT salary INTO mgr_sal FROM employees WHERE employee_id = mgr_id;
  SET dif_salary = mgr_sal - emp_sal;
END //
DELIMITER;    # 結(jié)束

# 調(diào)用存儲過程
SET @emp_id := 103;
SET @dif_sal := 0;
CALL different_salary(@emp_id,@dif_sal);
# 查看
SELECT @dif_sal;

關(guān)于“mysql變量怎么自定義”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點。


分享文章:mysql變量怎么自定義
文章來源:http://fisionsoft.com.cn/article/goseci.html