日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL 基础 ———— 变量

發布時間:2025/3/12 数据库 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL 基础 ———— 变量 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、MySQL系統變量

系統變量是由系統提供,屬于服務器層面。

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

全局變量一般要加 GLOBAL 關鍵字,例如在《MySQL 基礎 ————事務與隔離級別總結》中提到的 GLOBAL TRANSACTION,就屬于全局變量,它針對所有連接都會生效,但是一旦MySQL服務重啟,同樣會失效。

會話變量由 SESSION 關鍵字修飾,一般可以省略,比如? SET TRANSACTION ISOLATION ,這里的事務隔離級別設置就只針對當前會話,即當前連接。

二、查看系統變量

查看所有的全局或會話系統變量:

SHOW GLOBAL|SESSION VARIABLES;

查看滿足條件的部分系統變量:

SHOW GLOBAL VARIABLES LIKE '%char%';

查看具體的變量值:

SELECT @@global.character_set_client;

SELECT @@character_set_client;

三、設置系統變量

系統變量可以被用戶修改。有兩種方式:

方式一:

SET GLOBAL|[SESSION] 系統變量名 = 值;

方式二:

SET @@global|[session].系統變量名 = 值;

比如,設置事務提交方式(查看事務提交方式:SELECT? VARIABLES? LIKE? 'autocommit'??):

-- 全局 SET GLOBAL autocommit = 0; SET @@global.autocommit = 0;-- 當前會話 SET [SESSION] autocommit = 0; SET @@[session].autocommit = 0;

四、自定義變量

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

4.1 用戶變量

用戶變量要求必須帶有@符號,只針對當前會話有效??稍诋斍皶捴械娜魏蔚胤绞褂?#xff0c;相當于針對本次連接的“全局變量”。

賦值操作可以用 = 或 := 兩種。

4.1.1 聲明并初始化

SET @變量名 = 變量值; SET @變量名 := 變量值; SELECT @變量名 := 變量值;

4.1.2 賦值(更新用戶變量的值)

上述初始化的三種方法依然適用,同時,也可以使用 SELECT INTO:

SELECT 字段 INTO @變量名 FROM 表;

4.1.3 使用用戶變量

SELECT @變量名;

4.2 局部變量

局部變量的作用域僅僅在定義它的 BEGIN... END(存儲過程)中有效。而且聲明語句一定要在 BEGIN...END? 中的第一句話。

-- 聲明 DECLARE 變量名 類型 [DEFAULT 默認值]; -- 賦值 SET 變量名 = 值; SET 變量名 := 值; SELECT @變量名 := 值; SELECT 字段 INTO 變量名 FROM 表; -- 使用局部變量 SELECT 變量名;

4.3 演示

1、用戶變量演示:

SET @name = 'Morty'; SELECT @name; -- 輸出 Morty [5Bytes]SET @name = 100; SELECT @name; -- 輸出 100SET @count = 1; SELECT @count; -- 輸出 1SELECT COUNT(*) INTO @count FROM emp ; SELECT @count; -- 輸出 11

2、局部變量演示:

創建存儲過程:

-- 創建存儲過程 DELIMITER $ CREATE PROCEDURE emp_name_pro() BEGIN DECLARE emp_name VARCHAR(5) DEFAULT 'Moryt'; SELECT emp_name; END $

調用存儲過程:

CALL emp_name_pro;

五、用戶變量與局部變量的比較

?作用域定義和使用位置語法
用戶變量當前會話會話中的任何地方必須加@,不用指定類型
局部變量存儲過程的定義中BEGIN... END 的第一句一般不用加@,必須限定類型

?

總結

以上是生活随笔為你收集整理的MySQL 基础 ———— 变量的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。