十五、MySQL变量(系统变量、自定义变量)相关知识总结
生活随笔
收集整理的這篇文章主要介紹了
十五、MySQL变量(系统变量、自定义变量)相关知识总结
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
變量:
系統變量:
a.全局變量
b.會話變量
自定義變量:
a.用戶變量
b.局部變量
一、系統變量
說明:變量由系統定義,不是用戶定義,屬于服務器層面
注意:全局變量需要添加global關鍵字,會話變量需要添加session關鍵字,如果不寫,**默認也是會話(session)**級別
使用步驟:
show global|【session】variables;
show global|【session】 variables like ‘%char%’;
select @@global|【session】.系統變量名;
方式一:
set global|【session】系統變量名=值;
方式二:
set @@global|【session】系統變量名=值;
1)全局變量
作用域:針對于所有會話(連接)有效,但不能跨重啟
#①查看所有全局變量 SHOW GLOBAL VARIABLES; #②查看滿足條件的部分系統變量 SHOW GLOBAL VARIABLES LIKE '%char%'; #③查看指定的系統變量的值 SELECT @@global.autocommit; #④為某個系統變量賦值 SET @@global.autocommit=0; SET GLOBAL autocommit=0;2)會話變量
作用域:針對于當前會話(連接)有效
#①查看所有會話變量 SHOW SESSION VARIABLES; #②查看滿足條件的部分會話變量 SHOW SESSION VARIABLES LIKE '%char%'; #③查看指定的會話變量的值 SELECT @@autocommit; SELECT @@session.tx_isolation; #④為某個會話變量賦值 SET @@session.tx_isolation='read-uncommitted'; SET SESSION tx_isolation='read-committed';
二、自定義變量
說明:變量由用戶自定義,而不是系統提供的
使用步驟:
1)用戶變量
作用域:針對于當前會話(連接)有效,作用域同于會話變量
可以應用在任何地方,也就是begin end里面或begin end外面
賦值操作符:=或:=
①聲明并初始化
SET @變量名=值;
SET @變量名:=值;
SELECT @變量名:=值;
②賦值(更新變量的值)
SET @變量名=值;
SET @變量名:=值;
SELECT @變量名:=值;
SELECT 字段 INTO @變量名
FROM 表;
③使用(查看變量的值)
SELECT @變量名;
2)局部變量
作用域:僅僅在定義它的begin end塊中有效
應用在 begin end中的第一句話
①聲明
DECLARE 變量名 類型;
DECLARE 變量名 類型 【DEFAULT 值】;
②賦值(更新變量的值)
SET 局部變量名=值;
SET 局部變量名:=值;
SELECT 局部變量名:=值;
SELECT 字段 INTO 具備變量名
FROM 表;
③使用(查看變量的值)
SELECT 局部變量名;
案例:聲明兩個變量,求和并打印
#用戶變量 SET @m=1; SET @n=1; SET @sum=@m+@n; SELECT @sum;#局部變量(X)以下代碼為錯誤示范,因為局部變量需要在begin end 里面的第一行使用 DECLARE m INT DEFAULT 1; DECLARE n INT DEFAULT 1; DECLARE SUM INT; SET SUM=m+n; SELECT SUM;用戶變量和局部變量的對比:
| 用戶變量 | 當前會話 | 會話的任何地方 | 加@符號,不用指定類型 |
| 局部變量 | 定義它的BEGIN END中 | BEGIN END的第一句話 | 一般不用加@,需要指定類型 |
總結
以上是生活随笔為你收集整理的十五、MySQL变量(系统变量、自定义变量)相关知识总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 三、关于网页布局你该知道这些!(布局总结
- 下一篇: Nodejs 操作 MongoDb 数据