国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL中的變量 流程控制與游標咋用

2024-07-24 12:33:42
字體:
來源:轉載
供稿:網友
  今天小編給大家分享一下MySQL中的變量、流程控制與游標怎么用的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
  
  1. 變量
  在MySQL數據庫的存儲過程和函數中,可以使用變量來存儲查詢或計算的中間結果數據,或者輸出最終的結果數據。
 
  在 MySQL 數據庫中,變量分為系統變量以及用戶自定義變量。【相關推薦:mysql視頻教程】
 
  1.1 系統變量
  1.1.1 系統變量分類
  變量由系統定義,不是用戶定義,屬于服務器層面。啟動MySQL服務,生成MySQL服務實例期間,MySQL將為MySQL服務器內存中的系統變量賦值,這些系統變量定義了當前MySQL服務實例的屬性、特征。這些系統變量的值要么是編譯MySQL時參數的默認值,要么是配置文件(例如my.ini等)中的參數值。大家可以通過網址 https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html 查看MySQL文檔的系統變量。
 
  全局系統變量針對于所有會話(連接)有效,但不能跨重啟
  會話系統變量僅針對于當前會話(連接)有效。會話期間,當前會話對某個會話系統變量值的修改,不會影響其他會話同一個會話系統變量的值。
  會話1對某個全局系統變量值的修改會導致會話2中同一個全局系統變量值的修改。
  在MySQL中有些系統變量只能是全局的,例如 max_connections 用于限制服務器的最大連接數;有些系統變量作用域既可以是全局又可以是會話,例如 character_set_client 用于設置客戶端的字符集;有些系統變量的作用域只能是當前會話,例如 pseudo_thread_id 用于標記當前會話的 MySQL 連接 ID。
 
  1.1.2 查看系統變量
  查看所有或部分系統變量
  #查看所有全局變量
  SHOW GLOBAL VARIABLES;
  
  SELECT @@變量名;
  修改系統變量的值
  有些時候,數據庫管理員需要修改系統變量的默認值,以便修改當前會話或者MySQL服務實例的屬性、特征。具體方法:
 
  方式1:修改MySQL配置文件,繼而修改MySQL系統變量的值(該方法需要重啟MySQL服務)
 
  方式2:在MySQL服務運行期間,使用“set”命令重新設置系統變量的值
 
  #為某個系統變量賦值
  #方式1:
  SET @@global.變量名=變量值;
  #方式2:
  SET GLOBAL 變量名=變量值;
 
 
  #為某個會話變量賦值
  #方式1:
  SET @@session.變量名=變量值;
  #方式2:
  SET SESSION 變量名=變量值;
  舉例:
 
  SELECT @@global.autocommit;
  SET GLOBAL autocommit=0;
  SELECT @@session.tx_isolation;
  SET @@session.tx_isolation='read-uncommitted';
  SET GLOBAL max_connections = 1000;
  SELECT @@global.max_connections;
  1.2 用戶變量
  1.2.1 用戶變量分類
  用戶變量是用戶自己定義的,作為 MySQL 編碼規范,MySQL 中的用戶變量以一個“@”開頭。根據作用范圍不同,又分為會話用戶變量和局部變量。
 
  會話用戶變量:作用域和會話變量一樣,只對當前連接會話有效。
  局部變量:只在 BEGIN 和 END 語句塊中有效。局部變量只能在存儲過程和函數中使用。
  1.2.2 會話用戶變量
  變量的定義
  #方式1:“=”或“:=”
  SET @用戶變量 = 值;
  SET @用戶變量 := 值;
 
  #方式2:“:=” 或 INTO關鍵字
  SELECT @用戶變量 := 表達式 [FROM 等子句];
  SELECT 表達式 INTO @用戶變量  [FROM 等子句];
  查看用戶變量的值 (查看、比較、運算等)
  SELECT @用戶變量
  舉例
  SET @a = 1;
 
  SELECT @a;
  SELECT @num := COUNT(*) FROM employees;
 
  SELECT @num;
  SELECT AVG(salary) INTO @avgsalary FROM employees;
 
  SELECT @avgsalary;
  SELECT @big;  #查看某個未聲明的變量時,將得到NULL值

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 北海市| 崇仁县| 南皮县| 青田县| 阳信县| 刚察县| 泾川县| 安乡县| 太原市| 江陵县| 玛曲县| 新平| 太谷县| 项城市| 马龙县| 乌鲁木齐县| 棋牌| 交口县| 华宁县| 连云港市| 深圳市| 鹿泉市| 鲁甸县| 武强县| 德化县| 保康县| 山西省| 新源县| 上栗县| 中江县| 长丰县| 长乐市| 台江县| 合作市| 威宁| 县级市| 云安县| 佳木斯市| 阜平县| 彭山县| 岢岚县|