23-mysql --變量

分類

系統變量:
		全局變量
		會話變量
自定義變量:
		用戶變量
		局部變量

系統變量

變量由系統提供,不是用戶定義的,屬於服務器層面的
注:如果是全局級別用global,如果是會話級別用session;如果不寫,則默認session

使用語法:
1 查看所有的系統變量
SHOW GLOBAL|SESSION VARIABLES;

2 查看所有滿嘴條件的部分系統變量
SHOW GLOBAL | SESSION VARIABLES LIKE %CHAR%;

3 查看指定的某個系統變量的值
SELECT @@global|[SESSION].系統變量名稱;

4 爲某個系統變量賦值
SET GLOBAL |[SESSION] 系統變量名=;SET @@global |[SESSION].系統變量名=;

全局變量

作用域:服務器每次啓動將會爲所有的全局變量賦初始值,針對所有的會話連接有效,但不能誇重啓;使重啓有效的話必須改配置文件

1 查看所有的全局變量
SHOW GLOBAL VARIABLES;

2 查看部分全局變量
SHOW GLOBAL VARIABLES LIKE '%char%';

3 查看指定的全局變量
SELECT @@global.autocommit;
SELECT @@autocommit;
SELECT @@tx_isolation;

會話變量

注:session關鍵字可加也可以不加,因爲不加的情況下系統會默認是session級的

1 查看所有的會話變量
SHOW VARIABLES;SHOW SESSION varibales;

2 查看部分會話變量
SHOW VARIABLES LIKE '%char%';SHOW SESSION VARIABLES LIKE '%char%';

3 查看指定的某個會話變量
SELECT @@tx_isolation;SELECT @@session.tx_isolation;

4 爲某個會話變量賦值
SET @tx_isolation='read-uncommitted';SET SESSION tx_isolation='read-uncommitted';

用戶變量

用戶變量是用戶自定義的,不是由修通提供的;
步驟:聲明,賦值,使用
作用域:針對當前會話有效,同於會話變量的作用域

賦值操作符 =或:=
1 聲明並初始化
	SET @用戶變量名=;SET @用戶變量名:=;SELECT @用戶變量名:=;

2 賦值
方式一:通過SETSELECT
	SET @用戶變量名=;SET @用戶變量名:=;SELECT @用戶變量名:=值;
方式二:通過 SELECT INTO
	SELECT 字段 INTO @變量名
	FROM;
3 使用
	SELECT @用戶變量名;

案例

#案例
#聲明並初始化
SET @count=1;
#聲明
SET @test;

#賦值
SELECT COUNT(*) INTO @count 
FROM employees;

SELECT COUNT(*) FROM employees;//116

SELECT @count;//116

SELECT COUNT(*) INTO @test 
FROM employees;

SELECT @test;//116

局部變量

作用域:僅僅在定義它的begin end中有效
應用在begin end中的第一句話

1 聲明:
DECLARE 變量名 類型;
2 聲明並賦默認值:
DECLARE 變量名 類型 DEFAULT;

3 賦值
方式一:通過SETSELECT
	SET 局部變量名=;SET 局部變量名:=;SELECT @局部變量名:=;
方式二:通過 SELECT INTO
	SELECT 字段 INTO 局部變量名
	FROM;

對於用戶變量和局部變量

作用域 定義和使用的位置 語法
用戶變量 當前會話 會話中的任何地方 必須加@符號,不用限定類型
局部變量 Begin End中 只能在Begin End中,且爲第一句話 一般不用加@符號,需要限定類型
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章